mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 05:45:58 +01:00
add binding to mouse buttons
This commit is contained in:
parent
d04f36c57d
commit
66eac124e2
4 changed files with 32 additions and 0 deletions
|
@ -126,6 +126,8 @@ void CConfigManager::setDefaultVars() {
|
||||||
configValues["input:touchpad:tap-to-click"].intValue = 1;
|
configValues["input:touchpad:tap-to-click"].intValue = 1;
|
||||||
configValues["input:touchpad:drag_lock"].intValue = 0;
|
configValues["input:touchpad:drag_lock"].intValue = 0;
|
||||||
|
|
||||||
|
configValues["binds:pass_mouse_when_bound"].intValue = 1;
|
||||||
|
|
||||||
configValues["gestures:workspace_swipe"].intValue = 0;
|
configValues["gestures:workspace_swipe"].intValue = 0;
|
||||||
configValues["gestures:workspace_swipe_fingers"].intValue = 3;
|
configValues["gestures:workspace_swipe_fingers"].intValue = 3;
|
||||||
configValues["gestures:workspace_swipe_distance"].intValue = 300;
|
configValues["gestures:workspace_swipe_distance"].intValue = 300;
|
||||||
|
|
|
@ -143,6 +143,28 @@ bool CKeybindManager::onAxisEvent(wlr_pointer_axis_event* e) {
|
||||||
} else {
|
} else {
|
||||||
found = g_pKeybindManager->handleKeybinds(MODS, "mouse_up", 0, 0, true, 0);
|
found = g_pKeybindManager->handleKeybinds(MODS, "mouse_up", 0, 0, true, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (found)
|
||||||
|
shadowKeybinds();
|
||||||
|
}
|
||||||
|
|
||||||
|
return !found;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CKeybindManager::onMouseEvent(wlr_pointer_button_event* e) {
|
||||||
|
const auto MODS = g_pInputManager->accumulateModsFromAllKBs();
|
||||||
|
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
if (e->state == WLR_BUTTON_PRESSED) {
|
||||||
|
found = g_pKeybindManager->handleKeybinds(MODS, "mouse:" + std::to_string(e->button), 0, 0, true, 0);
|
||||||
|
|
||||||
|
if (found)
|
||||||
|
shadowKeybinds();
|
||||||
|
} else {
|
||||||
|
found = g_pKeybindManager->handleKeybinds(MODS, "mouse:" + std::to_string(e->button), 0, 0, false, 0);
|
||||||
|
|
||||||
|
shadowKeybinds();
|
||||||
}
|
}
|
||||||
|
|
||||||
return !found;
|
return !found;
|
||||||
|
|
|
@ -27,6 +27,7 @@ public:
|
||||||
|
|
||||||
bool onKeyEvent(wlr_keyboard_key_event*, SKeyboard*);
|
bool onKeyEvent(wlr_keyboard_key_event*, SKeyboard*);
|
||||||
bool onAxisEvent(wlr_pointer_axis_event*);
|
bool onAxisEvent(wlr_pointer_axis_event*);
|
||||||
|
bool onMouseEvent(wlr_pointer_button_event*);
|
||||||
|
|
||||||
void addKeybind(SKeybind);
|
void addKeybind(SKeybind);
|
||||||
void removeKeybind(uint32_t, const std::string&);
|
void removeKeybind(uint32_t, const std::string&);
|
||||||
|
|
|
@ -323,6 +323,13 @@ void CInputManager::processMouseDownNormal(wlr_pointer_button_event* e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// notify the keybind manager
|
||||||
|
static auto *const PPASSMOUSE = &g_pConfigManager->getConfigValuePtr("binds:pass_mouse_when_bound")->intValue;
|
||||||
|
const auto PASS = g_pKeybindManager->onMouseEvent(e);
|
||||||
|
|
||||||
|
if (!PASS && !*PPASSMOUSE)
|
||||||
|
return;
|
||||||
|
|
||||||
switch (e->state) {
|
switch (e->state) {
|
||||||
case WLR_BUTTON_PRESSED:
|
case WLR_BUTTON_PRESSED:
|
||||||
if (!g_pCompositor->m_sSeat.mouse->currentConstraint)
|
if (!g_pCompositor->m_sSeat.mouse->currentConstraint)
|
||||||
|
|
Loading…
Reference in a new issue