From 72efae40d315cb10bee858f14caff6183c49b309 Mon Sep 17 00:00:00 2001 From: kateleet Date: Sat, 25 Dec 2021 06:13:06 +0800 Subject: [PATCH] feat(settings/touchpad): add natural scrolling --- .../touchpad/com.cutefish.Touchpad.xml | 5 +++++ settings-daemon/touchpad/touchpadmanager.cpp | 11 ++++++++++ settings-daemon/touchpad/touchpadmanager.h | 4 ++++ settings-daemon/touchpad/x11/xlibbackend.cpp | 20 +++++++++++++++++++ settings-daemon/touchpad/x11/xlibbackend.h | 3 +++ 5 files changed, 43 insertions(+) diff --git a/settings-daemon/touchpad/com.cutefish.Touchpad.xml b/settings-daemon/touchpad/com.cutefish.Touchpad.xml index 2ffdfaf..ab93842 100644 --- a/settings-daemon/touchpad/com.cutefish.Touchpad.xml +++ b/settings-daemon/touchpad/com.cutefish.Touchpad.xml @@ -4,6 +4,7 @@ + @@ -14,6 +15,10 @@ + + + + diff --git a/settings-daemon/touchpad/touchpadmanager.cpp b/settings-daemon/touchpad/touchpadmanager.cpp index 10e19da..dba99f6 100644 --- a/settings-daemon/touchpad/touchpadmanager.cpp +++ b/settings-daemon/touchpad/touchpadmanager.cpp @@ -42,6 +42,17 @@ void TouchpadManager::setTapToClick(bool value) m_backend->applyConfig(); } +bool TouchpadManager::naturalScroll() const +{ + return m_backend->naturalScroll(); +} + +void TouchpadManager::setNaturalScroll(bool naturalScroll) +{ + m_backend->setNaturalScroll(naturalScroll); + m_backend->applyConfig(); +} + qreal TouchpadManager::pointerAcceleration() const { return m_backend->pointerAcceleration(); diff --git a/settings-daemon/touchpad/touchpadmanager.h b/settings-daemon/touchpad/touchpadmanager.h index d44c360..d8f84d6 100644 --- a/settings-daemon/touchpad/touchpadmanager.h +++ b/settings-daemon/touchpad/touchpadmanager.h @@ -10,6 +10,7 @@ class TouchpadManager : public QObject Q_PROPERTY(bool available READ available CONSTANT) Q_PROPERTY(bool enabled READ enabled WRITE setEnabled CONSTANT) Q_PROPERTY(bool tapToClick READ tapToClick WRITE setTapToClick CONSTANT) + Q_PROPERTY(bool naturalScroll READ naturalScroll WRITE setNaturalScroll CONSTANT) Q_PROPERTY(qreal pointerAcceleration READ pointerAcceleration WRITE setPointerAcceleration CONSTANT) public: @@ -23,6 +24,9 @@ public: bool tapToClick() const; void setTapToClick(bool value); + bool naturalScroll() const; + void setNaturalScroll(bool naturalScroll); + qreal pointerAcceleration() const; void setPointerAcceleration(qreal value); diff --git a/settings-daemon/touchpad/x11/xlibbackend.cpp b/settings-daemon/touchpad/x11/xlibbackend.cpp index 4139475..0824bbe 100644 --- a/settings-daemon/touchpad/x11/xlibbackend.cpp +++ b/settings-daemon/touchpad/x11/xlibbackend.cpp @@ -225,6 +225,26 @@ void XlibBackend::setTapToClick(bool enabled) object->setTapToClick(enabled); } +bool XlibBackend::naturalScroll() +{ + LibinputTouchpad *object = dynamic_cast(m_device.data()); + + if (!object) + return false; + + return object->isNaturalScroll(); +} + +void XlibBackend::setNaturalScroll(bool value) +{ + LibinputTouchpad *object = dynamic_cast(m_device.data()); + + if (!object) + return; + + object->setNaturalScroll(value); +} + qreal XlibBackend::pointerAcceleration() { LibinputTouchpad *object = dynamic_cast(m_device.data()); diff --git a/settings-daemon/touchpad/x11/xlibbackend.h b/settings-daemon/touchpad/x11/xlibbackend.h index c06185a..d7a26c8 100644 --- a/settings-daemon/touchpad/x11/xlibbackend.h +++ b/settings-daemon/touchpad/x11/xlibbackend.h @@ -73,6 +73,9 @@ public: bool tapToClick(); void setTapToClick(bool enabled); + bool naturalScroll(); + void setNaturalScroll(bool value); + qreal pointerAcceleration(); void setPointerAcceleration(qreal value);