Bug 458795

Summary: When clicking on key sequence button while other key sequence capture is active, Tablet KCM crashes with a protocol error: zwp_keyboard_shortcuts_inhibit_manager_v1@50: error 0: the shortcuts are already inhibited for this surface and seat
Product: [Applications] systemsettings Reporter: Nicolas Fella <nicolas.fella>
Component: kcm_tabletAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: aleixpol, nate
Priority: NOR    
Version First Reported In: master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Nicolas Fella 2022-09-06 15:41:24 UTC
STEPS TO REPRODUCE
1. Connect a tablet and open tablet KCM 
2. Click on Button next to "Button 1". Do not press any keys
3. Click on Button next to "Button 2"

OBSERVED RESULT
The KCM crashes with a protocol error: zwp_keyboard_shortcuts_inhibit_manager_v1@50: error 0: the shortcuts are already inhibited for this surface and seat

SOFTWARE/OS VERSIONS
KDE Plasma Version: master
KDE Frameworks Version: master
Qt Version: 5.15.5-kde
Comment 1 Bug Janitor Service 2022-09-12 16:22:00 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kguiaddons/-/merge_requests/64
Comment 2 Aleix Pol 2022-09-14 15:00:38 UTC
Git commit 8c915cf8d54e14fae4659ab2b81d76a2aa361c6b by Aleix Pol.
Committed on 12/09/2022 at 18:52.
Pushed by apol into branch 'master'.

recorder: Do not keep two sequences at the same time

It doesn't make much sense.

M  +5    -5    autotests/keysequencerecordertest.cpp
M  +31   -0    src/recorder/keysequencerecorder.cpp
M  +6    -0    src/recorder/keysequencerecorder.h

https://invent.kde.org/frameworks/kguiaddons/commit/8c915cf8d54e14fae4659ab2b81d76a2aa361c6b
Comment 3 Aleix Pol 2022-09-14 15:00:46 UTC
Git commit 20e1359bc3bd88f7146dc271062fea86aea21314 by Aleix Pol.
Committed on 12/09/2022 at 16:19.
Pushed by apol into branch 'master'.

recorder: Never request inhibition twice for the same surface or seat

The protocol considers this something fatal and will disconnect any
application that does so.

M  +3    -0    src/recorder/keysequencerecorder.cpp
M  +67   -40   src/recorder/waylandinhibition.cpp
M  +2    -3    src/recorder/waylandinhibition_p.h

https://invent.kde.org/frameworks/kguiaddons/commit/20e1359bc3bd88f7146dc271062fea86aea21314