From 8c094b0eec7724c75dd4a1cd7d29b1ff3fe32d18 Mon Sep 17 00:00:00 2001 From: TheOnlyMrCat Date: Thu, 22 Dec 2022 23:05:26 +1100 Subject: [PATCH] Make libinput tap-and-drag configurable (#1267) --- src/config/ConfigManager.cpp | 2 ++ src/managers/input/InputManager.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 7d4ada08..401e7f1c 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -153,6 +153,7 @@ void CConfigManager::setDefaultVars() { configValues["input:touchpad:clickfinger_behavior"].intValue = 0; configValues["input:touchpad:middle_button_emulation"].intValue = 0; configValues["input:touchpad:tap-to-click"].intValue = 1; + configValues["input:touchpad:tap-and-drag"].intValue = 1; configValues["input:touchpad:drag_lock"].intValue = 0; configValues["input:touchpad:scroll_factor"].floatValue = 1.f; configValues["input:touchdevice:transform"].intValue = 0; @@ -196,6 +197,7 @@ void CConfigManager::setDeviceDefaultVars(const std::string& dev) { cfgValues["clickfinger_behavior"].intValue = 0; cfgValues["middle_button_emulation"].intValue = 0; cfgValues["tap-to-click"].intValue = 1; + cfgValues["tap-and-drag"].intValue = 1; cfgValues["drag_lock"].intValue = 0; cfgValues["left_handed"].intValue = 0; cfgValues["scroll_method"].strValue = STRVAL_EMPTY; diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 43fc66cf..beb4f30a 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -743,6 +743,11 @@ void CInputManager::setPointerConfigs() { Debug::log(WARN, "Scroll method unknown"); } + if ((HASCONFIG ? g_pConfigManager->getDeviceInt(devname, "tap-and-drag") : g_pConfigManager->getInt("input:touchpad:tap-and-drag")) == 0) + libinput_device_config_tap_set_drag_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_DRAG_DISABLED); + else + libinput_device_config_tap_set_drag_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_DRAG_ENABLED); + if ((HASCONFIG ? g_pConfigManager->getDeviceInt(devname, "drag_lock") : g_pConfigManager->getInt("input:touchpad:drag_lock")) == 0) libinput_device_config_tap_set_drag_lock_enabled(LIBINPUTDEV, LIBINPUT_CONFIG_DRAG_LOCK_DISABLED); else