aur/0001-feature-allow-disable-hardcoded-touchpad-gestures.patch
2025-06-06 22:02:43 +08:00

131 lines
6.9 KiB
Diff

From b649c9b0820c182d61946d2fc4a181c22c6bd998 Mon Sep 17 00:00:00 2001
From: Wind He <g311571057@gmail.com>
Date: Sun, 4 Aug 2024 20:43:18 +0800
Subject: [PATCH] feature: allow disable hardcoded touchpad gestures
setting KWIN_WAYLAND_NO_GESTURE environment variable to disable the hardcoded touchpad gestures
---
src/plugins/overview/overvieweffect.cpp | 26 +++++-----
src/virtualdesktops.cpp | 69 +++++++++++++------------
2 files changed, 50 insertions(+), 45 deletions(-)
diff --git a/src/plugins/overview/overvieweffect.cpp b/src/plugins/overview/overvieweffect.cpp
index c4b9d1f9eb..00538f50f2 100644
--- a/src/plugins/overview/overvieweffect.cpp
+++ b/src/plugins/overview/overvieweffect.cpp
@@ -32,18 +32,20 @@ OverviewEffect::OverviewEffect()
, m_gridBorder(new EffectTogglableTouchBorder(m_gridState))
, m_shutdownTimer(new QTimer(this))
{
- auto gesture = new EffectTogglableGesture(m_overviewState);
- gesture->addTouchpadSwipeGesture(SwipeDirection::Up, 4);
- gesture->addTouchscreenSwipeGesture(SwipeDirection::Up, 3);
-
- auto transitionGesture = new EffectTogglableGesture(m_transitionState);
- transitionGesture->addTouchpadSwipeGesture(SwipeDirection::Up, 4);
- transitionGesture->addTouchscreenSwipeGesture(SwipeDirection::Up, 3);
- m_transitionState->stop();
-
- auto gridGesture = new EffectTogglableGesture(m_gridState);
- gridGesture->addTouchpadSwipeGesture(SwipeDirection::Down, 4);
- gridGesture->addTouchscreenSwipeGesture(SwipeDirection::Down, 3);
+ if (!qEnvironmentVariableIsSet("KWIN_WAYLAND_NO_GESTURE")) {
+ auto gesture = new EffectTogglableGesture(m_overviewState);
+ gesture->addTouchpadSwipeGesture(SwipeDirection::Up, 4);
+ gesture->addTouchscreenSwipeGesture(SwipeDirection::Up, 3);
+
+ auto transitionGesture = new EffectTogglableGesture(m_transitionState);
+ transitionGesture->addTouchpadSwipeGesture(SwipeDirection::Up, 4);
+ transitionGesture->addTouchscreenSwipeGesture(SwipeDirection::Up, 3);
+ m_transitionState->stop();
+
+ auto gridGesture = new EffectTogglableGesture(m_gridState);
+ gridGesture->addTouchpadSwipeGesture(SwipeDirection::Down, 4);
+ gridGesture->addTouchscreenSwipeGesture(SwipeDirection::Down, 3);
+ }
connect(m_overviewState, &EffectTogglableState::inProgressChanged, this, &OverviewEffect::overviewGestureInProgressChanged);
connect(m_overviewState, &EffectTogglableState::partialActivationFactorChanged, this, &OverviewEffect::overviewPartialActivationFactorChanged);
diff --git a/src/virtualdesktops.cpp b/src/virtualdesktops.cpp
index a0a09040d4..9b4f96e282 100644
--- a/src/virtualdesktops.cpp
+++ b/src/virtualdesktops.cpp
@@ -754,39 +754,42 @@ void VirtualDesktopManager::initShortcuts()
// Gestures
// These connections decide which desktop to end on after gesture ends
- connect(m_swipeGestureReleasedX.get(), &QAction::triggered, this, &VirtualDesktopManager::gestureReleasedX);
- connect(m_swipeGestureReleasedY.get(), &QAction::triggered, this, &VirtualDesktopManager::gestureReleasedY);
-
- const auto left = [this](qreal cb) {
- if (grid().width() > 1) {
- m_currentDesktopOffset.setX(cb);
- Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
- }
- };
- const auto right = [this](qreal cb) {
- if (grid().width() > 1) {
- m_currentDesktopOffset.setX(-cb);
- Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
- }
- };
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Left, 3, m_swipeGestureReleasedX.get(), left);
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Right, 3, m_swipeGestureReleasedX.get(), right);
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Left, 4, m_swipeGestureReleasedX.get(), left);
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Right, 4, m_swipeGestureReleasedX.get(), right);
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Down, 3, m_swipeGestureReleasedY.get(), [this](qreal cb) {
- if (grid().height() > 1) {
- m_currentDesktopOffset.setY(-cb);
- Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
- }
- });
- input()->registerTouchpadSwipeShortcut(SwipeDirection::Up, 3, m_swipeGestureReleasedY.get(), [this](qreal cb) {
- if (grid().height() > 1) {
- m_currentDesktopOffset.setY(cb);
- Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
- }
- });
- input()->registerTouchscreenSwipeShortcut(SwipeDirection::Left, 3, m_swipeGestureReleasedX.get(), left);
- input()->registerTouchscreenSwipeShortcut(SwipeDirection::Right, 3, m_swipeGestureReleasedX.get(), right);
+ if (!qEnvironmentVariableIsSet("KWIN_WAYLAND_NO_GESTURE")) {
+ connect(m_swipeGestureReleasedX.get(), &QAction::triggered, this, &VirtualDesktopManager::gestureReleasedX);
+ connect(m_swipeGestureReleasedY.get(), &QAction::triggered, this, &VirtualDesktopManager::gestureReleasedY);
+
+ const auto left = [this](qreal cb) {
+ if (grid().width() > 1) {
+ m_currentDesktopOffset.setX(cb);
+ Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
+ }
+ };
+ const auto right = [this](qreal cb) {
+ if (grid().width() > 1) {
+ m_currentDesktopOffset.setX(-cb);
+ Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
+ }
+ };
+
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Left, 3, m_swipeGestureReleasedX.get(), left);
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Right, 3, m_swipeGestureReleasedX.get(), right);
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Left, 4, m_swipeGestureReleasedX.get(), left);
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Right, 4, m_swipeGestureReleasedX.get(), right);
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Down, 3, m_swipeGestureReleasedY.get(), [this](qreal cb) {
+ if (grid().height() > 1) {
+ m_currentDesktopOffset.setY(-cb);
+ Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
+ }
+ });
+ input()->registerTouchpadSwipeShortcut(SwipeDirection::Up, 3, m_swipeGestureReleasedY.get(), [this](qreal cb) {
+ if (grid().height() > 1) {
+ m_currentDesktopOffset.setY(cb);
+ Q_EMIT currentChanging(currentDesktop(), m_currentDesktopOffset);
+ }
+ });
+ input()->registerTouchscreenSwipeShortcut(SwipeDirection::Left, 3, m_swipeGestureReleasedX.get(), left);
+ input()->registerTouchscreenSwipeShortcut(SwipeDirection::Right, 3, m_swipeGestureReleasedX.get(), right);
+ }
// axis events
input()->registerAxisShortcut(Qt::MetaModifier | Qt::AltModifier, PointerAxisDown,
--
2.46.0