4235871667
Summary: When triggering global shortcuts we are more interested in the hold keys than the currently active modifiers. E.g. capslock should not be seen as "shift is hold". Similar we need to remove consumed modifiers. Shift+5 is % and not Shift+% - the shift modifier is consumed and needs to be removed from shortcut evaluation. To support this we need to have the actual state directly from xkbcommon. Thus a new method is added which exposes the modifiers relevant for global shortcut matching. In addition on every key press all consumed modifiers are calculated and kept so that they can be used for shortcut matching. In addition a workaround is added for Backtab. Similar workaround exists in kglobalaccel for X11. The problem is that our shortcuts are stored incorrectly: Shift+Tab instead of Backtab. Thus a mapping back is required. To make everything worse KWin registers the wrong key sequence "Alt+Shift+Backtab" which doesn't make any sense and is broken on X11 at least. The workaround supports both special cases. The one for Backtab should be turned into Shift+Tab and also KWin's special case of adding shift to backtab. CCBUG: 368581 Reviewers: #kwin, #plasma_on_wayland, bshah Subscribers: plasma-devel, kwin Tags: #plasma_on_wayland, #kwin Differential Revision: https://phabricator.kde.org/D2768 |
||
---|---|---|
.. | ||
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 |