<table><tr><td style="">graesslin created this revision.<br />graesslin added reviewers: KWin, Plasma on Wayland.<br />Restricted Application added subscribers: kwin, plasma-devel.<br />Restricted Application added projects: Plasma on Wayland, KWin.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D3963" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>The OnScreenNotification gets moved during its placement. This update<br />
of the geometry did not get synced to the QWindow's geometry as it<br />
should.</p>
<p>The reason for this is the rather special implementation of<br />
AbstractClient::move. This just modifies the geom variable and does not<br />
call into setGeometry at all. Instead a virtual doMove method is invoked<br />
to inform the platform specific client implementation about the move of<br />
the window. For a "normal" ShellClient that is fine - there is nothing<br />
to do.</p>
<p>This change adds an implementation of doMove in ShellClient to sync the<br />
geometry to the internal window. This is not yet enough to fix the<br />
geometry of the OnScreenNotification. It gets placed with a<br />
GeometryUpdatesBlocker in place causing the doMove never to be called.<br />
Instead setGeometry is invoked again when the geometry updates get<br />
unblocked. So far ShellClient did not do anything in this case. This<br />
change ensures that at least the doSetGeometry method is performed again.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Added test case and manual testing of OnScreenNotification</p></div></div><br /><div><strong>BRANCH</strong><div><div>move-internal-window</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3963" rel="noreferrer">https://phabricator.kde.org/D3963</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>autotests/integration/internal_window.cpp<br />
shell_client.cpp<br />
shell_client.h</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>graesslin, KWin, Plasma on Wayland<br /><strong>Cc: </strong>plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, eliasp, sebas<br /></div>