Commit 12e59f9a authored by Vlad Zahorodnii's avatar Vlad Zahorodnii

Schedule workspace repaint for destroyed clients

We need to schedule a workspace repaint in case no effect is going to
animate the window.

The workspace repaint is issued before creating a Deleted because the
latter takes the owner of the effect window, which means that after an
instance of Deleted has been created, visibleRect() returns the frame
geometry.

CCBUG: 425294
parent 6d433bdf
......@@ -236,6 +236,7 @@ void AbstractClient::markAsZombie()
{
Q_ASSERT(!m_zombie);
m_zombie = true;
addWorkspaceRepaint(visibleRect());
}
Layer AbstractClient::layer() const
......
......@@ -87,6 +87,7 @@ bool Unmanaged::track(xcb_window_t w)
void Unmanaged::release(ReleaseReason releaseReason)
{
addWorkspaceRepaint(visibleRect());
Deleted* del = nullptr;
if (releaseReason != ReleaseReason::KWinShutsDown) {
del = Deleted::create(this);
......@@ -99,7 +100,6 @@ void Unmanaged::release(ReleaseReason releaseReason)
Xcb::selectInput(window(), XCB_EVENT_MASK_NO_EVENT);
}
workspace()->removeUnmanaged(this);
addWorkspaceRepaint(visibleRect());
if (releaseReason != ReleaseReason::KWinShutsDown) {
disownDataPassedToDeleted();
del->unrefWindow();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment