1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
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
|