kwin/autotests/wayland
Martin Gräßlin cb3c6a4780 Implement internal keyboard repeat
As a Wayland server KWin does not have to emit additional key repeat
events (unlike X11). The clients are responsible for handling this based
on the provided key repeat information.

Internally KWin needs key repeat, though. E.g. the effects need key
repeat (filtering in Present Windows), window moving by keyboard needs
repeat, etc. etc.

This change introduces the internal key repeat. For each key press a
QTimer is started which gets canceled again on the key release. If the
timer fires it invoked processKey with a new KeyboardKeyAutoRepeat state.
This is handled just like a KeyPress, but states are not updated and
the QKeyEvent has autorepeat set to true.

The event filters check for the autorepeat state and filter the event
out if they are not interested in it. E.g. the filters passing the event
to the Wayland client need to filter it out.

Currently auto-repeat is bound to using libinput. This needs to be
modified. The only backend sending repeated events is X11, thus for
other backends it should be enabled.

Whether creating a timer on each key event is a good idea is something to
evaluate in future.

Reviewed-By: Bhushan Shah
2016-02-19 08:22:53 +01:00
..
data/anim-data-delete-effect [autotest] Don't crash when cancel animation from animationEnded in scripted effect 2016-02-17 13:59:55 +01:00
CMakeLists.txt [autotest] Don't crash when cancel animation from animationEnded in scripted effect 2016-02-17 13:59:55 +01:00
decoration_input_test.cpp Move decoration double click logic to button press 2016-02-17 14:41:26 +01:00
dont_crash_cancel_animation.cpp [autotest] Don't crash when cancel animation from animationEnded in scripted effect 2016-02-17 13:59:55 +01:00
dont_crash_glxgears.cpp Revert "[autotest] Let's dare enabling the OpenGL compositor in the tests" 2016-02-12 15:22:55 +01:00
input_stacking_order.cpp [autotest] Test case for stacking order changes should change focus 2016-02-11 10:47:21 +01:00
internal_window.cpp Improve keyboard handling for internal windows 2016-02-17 13:34:24 +01:00
kwin_wayland_test.cpp Revert "[autotest] Let's dare enabling the OpenGL compositor in the tests" 2016-02-12 15:22:55 +01:00
kwin_wayland_test.h Fix typo 2016-02-11 09:34:19 +01:00
lockscreen.cpp Implement internal keyboard repeat 2016-02-19 08:22:53 +01:00
move_resize_window_test.cpp Map all pointer buttons to Qt::MouseButton 2016-02-17 11:16:57 +01:00
platformcursor.cpp [plugins/qpa] Implement a custom QPlatformCursor 2016-02-17 12:42:12 +01:00
pointer_input.cpp Invoke AbstractClient::enterEvent and ::leaveEvent on updating pointer window 2016-02-18 16:12:22 +01:00
quick_tiling_test.cpp Fix typo 2016-02-11 09:34:19 +01:00
start_test.cpp Fix typo 2016-02-11 09:34:19 +01:00
touch_input_test.cpp [autotests] Add test case for touch down triggers a mouse action 2016-02-18 09:57:18 +01:00
transient_no_input_test.cpp Fix typo 2016-02-11 09:34:19 +01:00