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: 425294master
parent
6d433bdfc9
commit
12e59f9af8
|
@ -236,6 +236,7 @@ void AbstractClient::markAsZombie()
|
||||||
{
|
{
|
||||||
Q_ASSERT(!m_zombie);
|
Q_ASSERT(!m_zombie);
|
||||||
m_zombie = true;
|
m_zombie = true;
|
||||||
|
addWorkspaceRepaint(visibleRect());
|
||||||
}
|
}
|
||||||
|
|
||||||
Layer AbstractClient::layer() const
|
Layer AbstractClient::layer() const
|
||||||
|
|
|
@ -87,6 +87,7 @@ bool Unmanaged::track(xcb_window_t w)
|
||||||
|
|
||||||
void Unmanaged::release(ReleaseReason releaseReason)
|
void Unmanaged::release(ReleaseReason releaseReason)
|
||||||
{
|
{
|
||||||
|
addWorkspaceRepaint(visibleRect());
|
||||||
Deleted* del = nullptr;
|
Deleted* del = nullptr;
|
||||||
if (releaseReason != ReleaseReason::KWinShutsDown) {
|
if (releaseReason != ReleaseReason::KWinShutsDown) {
|
||||||
del = Deleted::create(this);
|
del = Deleted::create(this);
|
||||||
|
@ -99,7 +100,6 @@ void Unmanaged::release(ReleaseReason releaseReason)
|
||||||
Xcb::selectInput(window(), XCB_EVENT_MASK_NO_EVENT);
|
Xcb::selectInput(window(), XCB_EVENT_MASK_NO_EVENT);
|
||||||
}
|
}
|
||||||
workspace()->removeUnmanaged(this);
|
workspace()->removeUnmanaged(this);
|
||||||
addWorkspaceRepaint(visibleRect());
|
|
||||||
if (releaseReason != ReleaseReason::KWinShutsDown) {
|
if (releaseReason != ReleaseReason::KWinShutsDown) {
|
||||||
disownDataPassedToDeleted();
|
disownDataPassedToDeleted();
|
||||||
del->unrefWindow();
|
del->unrefWindow();
|
||||||
|
|
Loading…
Reference in New Issue