summaryrefslogtreecommitdiff
path: root/src/managers/input/InputManager.cpp
diff options
context:
space:
mode:
authorMarco Siedentopf <siedentm@me.com>2022-06-12 05:40:06 +0000
committerGitHub <noreply@github.com>2022-06-12 05:40:06 +0000
commit16d1b44ef999a009d4a82acea0cb7943c88e2870 (patch)
tree50a8153286d437ea281f29da71b975dc4569a1a0 /src/managers/input/InputManager.cpp
parente69f2ab4c363ca991087464b5295d34be81936be (diff)
Implemented Config options for Touchpads
Implemented Options to 1. toggle between clickfinger behavior and software buttons, 2. button emulation and 3. tap-to-click
Diffstat (limited to 'src/managers/input/InputManager.cpp')
-rw-r--r--src/managers/input/InputManager.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index 4a35a8c7..5f49fb1c 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -323,8 +323,21 @@ void CInputManager::newMouse(wlr_input_device* mouse) {
if (wlr_input_device_is_libinput(mouse)) {
const auto LIBINPUTDEV = (libinput_device*)wlr_libinput_get_device_handle(mouse);
+ if (g_pConfigManager->getInt("input:touchpad:clickfinger_behavior")==0) // toggle software buttons or clickfinger
+ libinput_device_config_click_set_method(LIBINPUTDEV, LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS);
+ else
+ libinput_device_config_click_set_method(LIBINPUTDEV, LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER);
+
+ if (libinput_device_config_middle_emulation_is_available(LIBINPUTDEV)) { // middleclick on r+l mouse button pressed
+ if (g_pConfigManager->getInt("input:touchpad:middle_button_emulation")==1)
+ libinput_device_config_middle_emulation_set_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED);
+ else
+ libinput_device_config_middle_emulation_set_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED);
+ }
+
if (libinput_device_config_tap_get_finger_count(LIBINPUTDEV)) // this is for tapping (like on a laptop)
- libinput_device_config_tap_set_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_TAP_ENABLED);
+ if (g_pConfigManager->getInt("input:touchpad:tap-to-click")==1)
+ libinput_device_config_tap_set_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_TAP_ENABLED);
if (libinput_device_config_scroll_has_natural_scroll(LIBINPUTDEV)) {
double w = 0, h = 0;