#include "touchpadmanager.h" #include "touchpadadaptor.h" #include "input/kwininputbackend.h" #include TouchpadManager::TouchpadManager(QObject *parent) : QObject(parent) , m_backend(new KWinInputBackend(KWinInputBackend::DeviceType::Touchpad, this)) { new TouchpadAdaptor(this); QDBusConnection::sessionBus().registerObject(QStringLiteral("/Touchpad"), this); connect(m_backend, &KWinInputBackend::devicesChanged, this, [this] { emit availableChanged(); emit enabledChanged(); emit tapToClickChanged(); emit naturalScrollChanged(); emit pointerAccelerationChanged(); }); } bool TouchpadManager::available() const { return m_backend->available(); } bool TouchpadManager::enabled() const { return m_backend->booleanProperty(QStringLiteral("enabled"), true); } void TouchpadManager::setEnabled(bool enabled) { if (this->enabled() == enabled) return; m_backend->setBooleanProperty(QStringLiteral("enabled"), enabled); emit enabledChanged(); } bool TouchpadManager::tapToClick() const { return m_backend->booleanProperty(QStringLiteral("tapToClick")); } void TouchpadManager::setTapToClick(bool value) { if (tapToClick() == value) return; m_backend->setBooleanProperty(QStringLiteral("tapToClick"), value); emit tapToClickChanged(); } bool TouchpadManager::naturalScroll() const { return m_backend->booleanProperty(QStringLiteral("naturalScroll")); } void TouchpadManager::setNaturalScroll(bool naturalScroll) { if (this->naturalScroll() == naturalScroll) return; m_backend->setBooleanProperty(QStringLiteral("naturalScroll"), naturalScroll); emit naturalScrollChanged(); } qreal TouchpadManager::pointerAcceleration() const { return m_backend->realProperty(QStringLiteral("pointerAcceleration")); } void TouchpadManager::setPointerAcceleration(qreal value) { value = qBound(-1.0, value, 1.0); if (qFuzzyCompare(1.0 + pointerAcceleration(), 1.0 + value)) return; m_backend->setRealProperty(QStringLiteral("pointerAcceleration"), value); emit pointerAccelerationChanged(); }