mirror of
https://github.com/archlinux/aur.git
synced 2025-12-10 08:05:42 +01:00
131 lines
6.9 KiB
Diff
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
|
|
|