https://bugs.kde.org/show_bug.cgi?id=501315

small parking <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]
                   |                            |g

--- Comment #6 from small parking <[email protected]> ---
I analyzed the root cause of this bug. The issue is in
kcms/touchpad/backends/x11/xlibbackend.cpp.
The XlibBackend never connects the LibinputTouchpad::needsSaveChanged signal to
TouchpadBackend::needsSaveChanged. Without this connection, the KCM's
onChanged() is never called on X11 when the user modifies a setting, so the
Apply button stays greyed out (or appears active but does nothing).
This is missing in two places:
1. In the constructor (~line 37): after m_device is created, there is no
connect(m_device.get(), &LibinputTouchpad::needsSaveChanged, this,
&TouchpadBackend::needsSaveChanged).
2. In XlibBackend::devicePlugged() (~line 272): after the new device is set up,
the same connect is missing.
The libinput (Wayland) backend has this connect in both places — it was simply
overlooked in the X11 backend.
Fix (two lines):
// In XlibBackend::XlibBackend(), after the existing connects:
connect(m_device.get(), &LibinputTouchpad::needsSaveChanged, this,
&TouchpadBackend::needsSaveChanged);

// In XlibBackend::devicePlugged(), after the existing connects for the new
device:
connect(m_device.get(), &LibinputTouchpad::needsSaveChanged, this,
&TouchpadBackend::needsSaveChanged);
I have tested this fix locally on Plasma 6.7.3 (Arch Linux, X11) and it
resolves the issue — the Apply button now lights up when settings are changed
and properly saves them.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to