Only emit EffectsHandler::windowClosed if Deleted got created
Ensures that Effects cannot ref a window during tear down and then abort because there is no Deleted for the EffectWindow.
This commit is contained in:
parent
936c52e263
commit
c09f4039d1
2 changed files with 5 additions and 3 deletions
|
@ -599,10 +599,12 @@ void EffectsHandlerImpl::slotUnmanagedShown(KWin::Toplevel *t)
|
|||
emit windowAdded(u->effectWindow());
|
||||
}
|
||||
|
||||
void EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel *c)
|
||||
void EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel *c, KWin::Deleted *d)
|
||||
{
|
||||
c->disconnect(this);
|
||||
emit windowClosed(c->effectWindow());
|
||||
if (d) {
|
||||
emit windowClosed(c->effectWindow());
|
||||
}
|
||||
}
|
||||
|
||||
void EffectsHandlerImpl::slotClientModalityChanged()
|
||||
|
|
|
@ -245,7 +245,7 @@ protected Q_SLOTS:
|
|||
void slotClientShown(KWin::Toplevel*);
|
||||
void slotShellClientShown(KWin::Toplevel*);
|
||||
void slotUnmanagedShown(KWin::Toplevel*);
|
||||
void slotWindowClosed(KWin::Toplevel *c);
|
||||
void slotWindowClosed(KWin::Toplevel *c, KWin::Deleted *d);
|
||||
void slotClientMaximized(KWin::AbstractClient *c, MaximizeMode maxMode);
|
||||
void slotOpacityChanged(KWin::Toplevel *t, qreal oldOpacity);
|
||||
void slotClientModalityChanged();
|
||||
|
|
Loading…
Reference in a new issue