Improve the escape key handling for breaking constrained pointers

Authored by graesslin on Apr 18 2017, 5:15 AM.



So far KWin started to filter out the escape key as soon as it gets
pressed. This was done by unsetting keyboard focus. The idea was to
reset keyboard focus when it is only a short press and that then the
keyboard state is correct for the application. But in practice this
does not work. The only application currently supporting pointer
constraints (Xwayland) does not do anything on a key which is pressed
when gaining keyboard focus. The result is escape not working in
pointer constrained Xwayland windows.

This change addresses this problem by changing the interaction to only
unset keyboard focus when our break constraints condition is met. This
should also result in the application not handling the key release, but
it means it gets the key press. Unfortunately I don't have a good way
to test.

BUG: 378452

Test Plan


Diff Detail

R108 KWin
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
graesslin created this revision.Apr 18 2017, 5:15 AM
Restricted Application added a project: KWin. · View Herald TranscriptApr 18 2017, 5:15 AM
Restricted Application added subscribers: kwin, plasma-devel. · View Herald Transcript
mart accepted this revision.Apr 20 2017, 10:24 AM
This revision is now accepted and ready to land.Apr 20 2017, 10:24 AM
graesslin planned changes to this revision.May 10 2017, 6:42 PM
This revision is now accepted and ready to land.May 11 2017, 3:58 PM
Restricted Application edited projects, added Plasma; removed KWin. · View Herald TranscriptMay 11 2017, 3:58 PM
This revision was automatically updated to reflect the committed changes.