diff --git a/kcms/touchpad/src/backends/x11/xlibbackend.h b/kcms/touchpad/src/backends/x11/xlibbackend.h --- a/kcms/touchpad/src/backends/x11/xlibbackend.h +++ b/kcms/touchpad/src/backends/x11/xlibbackend.h @@ -53,6 +53,7 @@ return m_device ? m_device->supportedParameters() : QStringList(); } const QString &errorString() const { return m_errorString; } + bool hasTouchpad() const { return m_device; } void setTouchpadOff(TouchpadOffState) Q_DECL_OVERRIDE; TouchpadOffState getTouchpadOff() Q_DECL_OVERRIDE; diff --git a/kcms/touchpad/src/kcm/touchpadconfig.cpp b/kcms/touchpad/src/kcm/touchpadconfig.cpp --- a/kcms/touchpad/src/kcm/touchpadconfig.cpp +++ b/kcms/touchpad/src/kcm/touchpadconfig.cpp @@ -326,6 +326,9 @@ void TouchpadConfig::checkChanges() { + if (!m_backend->hasTouchpad()) { + return; + } unmanagedWidgetChangeState(m_manager->hasChangedFuzzy() || m_configOutOfSync); if (m_configOutOfSync) { diff --git a/kcms/touchpad/src/touchpadbackend.h b/kcms/touchpad/src/touchpadbackend.h --- a/kcms/touchpad/src/touchpadbackend.h +++ b/kcms/touchpad/src/touchpadbackend.h @@ -39,6 +39,7 @@ virtual bool getConfig(QVariantHash &) = 0; virtual QStringList supportedParameters() const = 0; virtual const QString &errorString() const = 0; + virtual bool hasTouchpad() const = 0; enum TouchpadOffState { TouchpadEnabled, TouchpadTapAndScrollDisabled, TouchpadFullyDisabled