421824b654
Summary: If a key could be turned into a keysym with a modifier xkbcommon considers the modifier as consumed even if not pressed. E.g. Alt+F3 considers alt as consumed as there is a keysym gnerated with Ctrl+Alt+F3 (vt switching). This change tries to workaround the problem by ignoring the consumed modifiers if there are more modifiers consumed than active. It's possible that this will create regressions for other shortcuts - we need to test it in the wild. Although this might cause regressions I'm aiming for Plasma/5.8 branch with the change. It only affects Wayland and fixes quite important shortcuts from window manager perspective (desktop switching (ctrl+f1 to ctrl+f4), desktop grid (ctrl+f8), present windows (ctrl+f9, ctrl+10), cube (ctrl+f11), user actions (alt+f3), close window (alt+f4)). If it causes regressions they need to be fixed as well in the Plasma/5.8 branch. A new API entry point for xkbcommon was proposed, but is not yet merged and there is no release with it yet. Once that is available the workaround should get removed and replaced by the new API call. BUG: 368989 FIXED-IN: 5.8.1 Test Plan: Going to restart session now with the change Reviewers: #kwin, #plasma_on_wayland Subscribers: plasma-devel, kwin Tags: #plasma_on_wayland, #kwin Differential Revision: https://phabricator.kde.org/D2945 |
||
---|---|---|
.. | ||
integration | ||
libinput | ||
libkwineffects | ||
libxrenderutils | ||
tabbox | ||
abstract_client.h | ||
client.h | ||
CMakeLists.txt | ||
fakeeffectplugin.cpp | ||
fakeeffectplugin.json | ||
fakeeffectplugin_version.cpp | ||
fakeeffectplugin_version.json | ||
mock_abstract_client.cpp | ||
mock_abstract_client.h | ||
mock_client.cpp | ||
mock_client.h | ||
mock_effectshandler.cpp | ||
mock_effectshandler.h | ||
mock_screens.cpp | ||
mock_screens.h | ||
mock_workspace.cpp | ||
mock_workspace.h | ||
test_builtin_effectloader.cpp | ||
test_client_machine.cpp | ||
test_plugin_effectloader.cpp | ||
test_screen_edges.cpp | ||
test_screen_paint_data.cpp | ||
test_screens.cpp | ||
test_scripted_effectloader.cpp | ||
test_virtual_desktops.cpp | ||
test_window_paint_data.cpp | ||
test_xcb_size_hints.cpp | ||
test_xcb_window.cpp | ||
test_xcb_wrapper.cpp | ||
test_xrandr_screens.cpp | ||
testutils.h | ||
workspace.h |