6a78bd45fe
Summary: The OnScreenNotification gets moved during its placement. This update of the geometry did not get synced to the QWindow's geometry as it should. The reason for this is the rather special implementation of AbstractClient::move. This just modifies the geom variable and does not call into setGeometry at all. Instead a virtual doMove method is invoked to inform the platform specific client implementation about the move of the window. For a "normal" ShellClient that is fine - there is nothing to do. This change adds an implementation of doMove in ShellClient to sync the geometry to the internal window. This is not yet enough to fix the geometry of the OnScreenNotification. It gets placed with a GeometryUpdatesBlocker in place causing the doMove never to be called. Instead setGeometry is invoked again when the geometry updates get unblocked. So far ShellClient did not do anything in this case. This change ensures that at least the doSetGeometry method is performed again. Test Plan: Added test case and manual testing of OnScreenNotification Reviewers: #kwin, #plasma_on_wayland Subscribers: plasma-devel, kwin Tags: #plasma_on_wayland, #kwin Differential Revision: https://phabricator.kde.org/D3963 |
||
---|---|---|
.. | ||
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 | ||
onscreennotificationtest.cpp | ||
onscreennotificationtest.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 |