[Differential] [Request, 33 lines] D2786: [server] Don't send key release for not pressed keys and no double key press
graesslin (Martin Gräßlin)
noreply at phabricator.kde.org
Thu Sep 15 07:35:15 UTC 2016
graesslin created this revision.
graesslin added reviewers: Plasma on Wayland, KWin.
Restricted Application added subscribers: kwin, plasma-devel.
Restricted Application added projects: Plasma on Wayland, KWin.
REVISION SUMMARY
This change makes use of the internal key state in better way. If a
key is not considered pressed, no key release is sent. This can happen
for example if the compositor grabs a key press (global shortcut) but not
the release. The Wayland client cannot do anything with the release as it
never got the press. Thus it doesn't make sense to send the release.
Similar if a key is already pressed, it doesn't make sense to send
another press event. This ensures that if the server sends in repeating
key presses they are filtered out. Key repeat is handled on client side.
Also if several physical keys send the same key code, pressing them at
the same time won't send double press/release event.
This change might cause regressions in KWin in case KWin does not handle
the situation correctly. But that would be a bug in KWin which needs to
be fixed there. If it causes regressions the bug might have shown in
other situations as well.
BUG: 366625
FIXED-IN: 5.27
REPOSITORY
rKWAYLAND KWayland
BRANCH
update-key-only-on-change
REVISION DETAIL
https://phabricator.kde.org/D2786
AFFECTED FILES
autotests/client/test_wayland_seat.cpp
src/server/seat_interface.cpp
src/server/seat_interface_p.h
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: graesslin, #plasma_on_wayland, #kwin
Cc: plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160915/73dedca7/attachment.html>
More information about the Plasma-devel
mailing list