Fix keyboard layout change notifications
Summary:
This rework fixes several issues:
- Qt wasn't informed about XCB_MAPPING_NOTIFY anymore
- With XKB enabled in Qt, X won't send XCB_MAPPING_NOTIFY anymore. So listen for XKB events as well.
- Install the event filter before fetching the keysym mapping to close a race window
- Use the old mapping for ungrabbing
BUG: 350816
BUG: 269403
Test Plan:
Ctrl-Alt-Y global shortcut works even when doing
"setxkbmap us; kglobalaccel5 & sleep 1; setxkbmap de;" while it did not
before. On some systems, this race happened on every login, now it works
reliably.
Reviewers: Frameworks, Plasma, romangg
Reviewed By: Plasma, romangg
Subscribers: romangg, ngraham, anthonyfieroni, kde-frameworks-devel
Tags: Frameworks
Differential Revision: https://phabricator.kde.org/D16434