mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 20:45:59 +01:00
input: move dmps activation to input listeners (#7721)
This commit is contained in:
parent
85da1a17d8
commit
8237d7e1a4
3 changed files with 40 additions and 12 deletions
|
@ -221,6 +221,7 @@ class CKeybindManager {
|
||||||
friend class CInputManager;
|
friend class CInputManager;
|
||||||
friend class CConfigManager;
|
friend class CConfigManager;
|
||||||
friend class CWorkspace;
|
friend class CWorkspace;
|
||||||
|
friend class CPointerManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline std::unique_ptr<CKeybindManager> g_pKeybindManager;
|
inline std::unique_ptr<CKeybindManager> g_pKeybindManager;
|
||||||
|
|
|
@ -821,6 +821,9 @@ void CPointerManager::attachPointer(SP<IPointer> pointer) {
|
||||||
if (!pointer)
|
if (!pointer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
static auto PMOUSEDPMS = CConfigValue<Hyprlang::INT>("misc:mouse_move_enables_dpms");
|
||||||
|
|
||||||
|
//
|
||||||
auto listener = pointerListeners.emplace_back(makeShared<SPointerListener>());
|
auto listener = pointerListeners.emplace_back(makeShared<SPointerListener>());
|
||||||
|
|
||||||
listener->pointer = pointer;
|
listener->pointer = pointer;
|
||||||
|
@ -836,6 +839,9 @@ void CPointerManager::attachPointer(SP<IPointer> pointer) {
|
||||||
g_pInputManager->onMouseMoved(E);
|
g_pInputManager->onMouseMoved(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->motionAbsolute = pointer->pointerEvents.motionAbsolute.registerListener([this] (std::any e) {
|
listener->motionAbsolute = pointer->pointerEvents.motionAbsolute.registerListener([this] (std::any e) {
|
||||||
|
@ -844,6 +850,9 @@ void CPointerManager::attachPointer(SP<IPointer> pointer) {
|
||||||
g_pInputManager->onMouseWarp(E);
|
g_pInputManager->onMouseWarp(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->button = pointer->pointerEvents.button.registerListener([this] (std::any e) {
|
listener->button = pointer->pointerEvents.button.registerListener([this] (std::any e) {
|
||||||
|
@ -872,6 +881,9 @@ void CPointerManager::attachPointer(SP<IPointer> pointer) {
|
||||||
g_pInputManager->onSwipeBegin(E);
|
g_pInputManager->onSwipeBegin(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->swipeEnd = pointer->pointerEvents.swipeEnd.registerListener([this] (std::any e) {
|
listener->swipeEnd = pointer->pointerEvents.swipeEnd.registerListener([this] (std::any e) {
|
||||||
|
@ -896,6 +908,9 @@ void CPointerManager::attachPointer(SP<IPointer> pointer) {
|
||||||
PROTO::pointerGestures->pinchBegin(E.timeMs, E.fingers);
|
PROTO::pointerGestures->pinchBegin(E.timeMs, E.fingers);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->pinchEnd = pointer->pointerEvents.pinchEnd.registerListener([this] (std::any e) {
|
listener->pinchEnd = pointer->pointerEvents.pinchEnd.registerListener([this] (std::any e) {
|
||||||
|
@ -938,6 +953,9 @@ void CPointerManager::attachTouch(SP<ITouch> touch) {
|
||||||
if (!touch)
|
if (!touch)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
static auto PMOUSEDPMS = CConfigValue<Hyprlang::INT>("misc:mouse_move_enables_dpms");
|
||||||
|
|
||||||
|
//
|
||||||
auto listener = touchListeners.emplace_back(makeShared<STouchListener>());
|
auto listener = touchListeners.emplace_back(makeShared<STouchListener>());
|
||||||
|
|
||||||
listener->touch = touch;
|
listener->touch = touch;
|
||||||
|
@ -953,6 +971,9 @@ void CPointerManager::attachTouch(SP<ITouch> touch) {
|
||||||
g_pInputManager->onTouchDown(E);
|
g_pInputManager->onTouchDown(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->up = touch->touchEvents.up.registerListener([this] (std::any e) {
|
listener->up = touch->touchEvents.up.registerListener([this] (std::any e) {
|
||||||
|
@ -987,6 +1008,9 @@ void CPointerManager::attachTablet(SP<CTablet> tablet) {
|
||||||
if (!tablet)
|
if (!tablet)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
static auto PMOUSEDPMS = CConfigValue<Hyprlang::INT>("misc:mouse_move_enables_dpms");
|
||||||
|
|
||||||
|
//
|
||||||
auto listener = tabletListeners.emplace_back(makeShared<STabletListener>());
|
auto listener = tabletListeners.emplace_back(makeShared<STabletListener>());
|
||||||
|
|
||||||
listener->tablet = tablet;
|
listener->tablet = tablet;
|
||||||
|
@ -1002,6 +1026,9 @@ void CPointerManager::attachTablet(SP<CTablet> tablet) {
|
||||||
g_pInputManager->onTabletAxis(E);
|
g_pInputManager->onTabletAxis(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->proximity = tablet->tabletEvents.proximity.registerListener([this] (std::any e) {
|
listener->proximity = tablet->tabletEvents.proximity.registerListener([this] (std::any e) {
|
||||||
|
@ -1018,6 +1045,9 @@ void CPointerManager::attachTablet(SP<CTablet> tablet) {
|
||||||
g_pInputManager->onTabletTip(E);
|
g_pInputManager->onTabletTip(E);
|
||||||
|
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
listener->button = tablet->tabletEvents.button.registerListener([this] (std::any e) {
|
listener->button = tablet->tabletEvents.button.registerListener([this] (std::any e) {
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include "../../managers/PointerManager.hpp"
|
#include "../../managers/PointerManager.hpp"
|
||||||
#include "../../managers/SeatManager.hpp"
|
#include "../../managers/SeatManager.hpp"
|
||||||
|
#include "../../managers/KeybindManager.hpp"
|
||||||
|
|
||||||
#include <aquamarine/input/Input.hpp>
|
#include <aquamarine/input/Input.hpp>
|
||||||
|
|
||||||
|
@ -135,7 +136,6 @@ void CInputManager::sendMotionEventsToFocused() {
|
||||||
void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
|
void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
|
||||||
static auto PFOLLOWMOUSE = CConfigValue<Hyprlang::INT>("input:follow_mouse");
|
static auto PFOLLOWMOUSE = CConfigValue<Hyprlang::INT>("input:follow_mouse");
|
||||||
static auto PMOUSEREFOCUS = CConfigValue<Hyprlang::INT>("input:mouse_refocus");
|
static auto PMOUSEREFOCUS = CConfigValue<Hyprlang::INT>("input:mouse_refocus");
|
||||||
static auto PMOUSEDPMS = CConfigValue<Hyprlang::INT>("misc:mouse_move_enables_dpms");
|
|
||||||
static auto PFOLLOWONDND = CConfigValue<Hyprlang::INT>("misc:always_follow_on_dnd");
|
static auto PFOLLOWONDND = CConfigValue<Hyprlang::INT>("misc:always_follow_on_dnd");
|
||||||
static auto PFLOATBEHAVIOR = CConfigValue<Hyprlang::INT>("input:float_switch_override_focus");
|
static auto PFLOATBEHAVIOR = CConfigValue<Hyprlang::INT>("input:float_switch_override_focus");
|
||||||
static auto PMOUSEFOCUSMON = CConfigValue<Hyprlang::INT>("misc:mouse_move_focuses_monitor");
|
static auto PMOUSEFOCUSMON = CConfigValue<Hyprlang::INT>("misc:mouse_move_focuses_monitor");
|
||||||
|
@ -157,11 +157,6 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
|
||||||
if (!g_pCompositor->m_bReadyToProcess || g_pCompositor->m_bIsShuttingDown || g_pCompositor->m_bUnsafeState)
|
if (!g_pCompositor->m_bReadyToProcess || g_pCompositor->m_bIsShuttingDown || g_pCompositor->m_bUnsafeState)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!g_pCompositor->m_bDPMSStateON && *PMOUSEDPMS) {
|
|
||||||
// enable dpms
|
|
||||||
g_pKeybindManager->dpms("on");
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2D mouseCoords = getMouseCoordsInternal();
|
Vector2D mouseCoords = getMouseCoordsInternal();
|
||||||
const auto MOUSECOORDSFLOORED = mouseCoords.floor();
|
const auto MOUSECOORDSFLOORED = mouseCoords.floor();
|
||||||
|
|
||||||
|
@ -854,6 +849,8 @@ void CInputManager::newVirtualKeyboard(SP<CVirtualKeyboardV1Resource> keyboard)
|
||||||
}
|
}
|
||||||
|
|
||||||
void CInputManager::setupKeyboard(SP<IKeyboard> keeb) {
|
void CInputManager::setupKeyboard(SP<IKeyboard> keeb) {
|
||||||
|
static auto PDPMS = CConfigValue<Hyprlang::INT>("misc:key_press_enables_dpms");
|
||||||
|
|
||||||
m_vHIDs.push_back(keeb);
|
m_vHIDs.push_back(keeb);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -882,6 +879,9 @@ void CInputManager::setupKeyboard(SP<IKeyboard> keeb) {
|
||||||
|
|
||||||
if (PKEEB->enabled)
|
if (PKEEB->enabled)
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (PKEEB->enabled && *PDPMS && !g_pCompositor->m_bDPMSStateON)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
},
|
},
|
||||||
keeb.get());
|
keeb.get());
|
||||||
|
|
||||||
|
@ -893,6 +893,9 @@ void CInputManager::setupKeyboard(SP<IKeyboard> keeb) {
|
||||||
|
|
||||||
if (PKEEB->enabled)
|
if (PKEEB->enabled)
|
||||||
PROTO::idle->onActivity();
|
PROTO::idle->onActivity();
|
||||||
|
|
||||||
|
if (PKEEB->enabled && *PDPMS && !g_pCompositor->m_bDPMSStateON)
|
||||||
|
g_pKeybindManager->dpms("on");
|
||||||
},
|
},
|
||||||
keeb.get());
|
keeb.get());
|
||||||
|
|
||||||
|
@ -1284,12 +1287,6 @@ void CInputManager::onKeyboardKey(std::any event, SP<IKeyboard> pKeyboard) {
|
||||||
const auto EMAP = std::unordered_map<std::string, std::any>{{"keyboard", pKeyboard}, {"event", event}};
|
const auto EMAP = std::unordered_map<std::string, std::any>{{"keyboard", pKeyboard}, {"event", event}};
|
||||||
EMIT_HOOK_EVENT_CANCELLABLE("keyPress", EMAP);
|
EMIT_HOOK_EVENT_CANCELLABLE("keyPress", EMAP);
|
||||||
|
|
||||||
static auto PDPMS = CConfigValue<Hyprlang::INT>("misc:key_press_enables_dpms");
|
|
||||||
if (*PDPMS && !g_pCompositor->m_bDPMSStateON) {
|
|
||||||
// enable dpms
|
|
||||||
g_pKeybindManager->dpms("on");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool passEvent = DISALLOWACTION || g_pKeybindManager->onKeyEvent(event, pKeyboard);
|
bool passEvent = DISALLOWACTION || g_pKeybindManager->onKeyEvent(event, pKeyboard);
|
||||||
|
|
||||||
auto e = std::any_cast<IKeyboard::SKeyEvent>(event);
|
auto e = std::any_cast<IKeyboard::SKeyEvent>(event);
|
||||||
|
|
Loading…
Reference in a new issue