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.
remotes/origin/Plasma/5.5
Martin Gräßlin 11 years ago
parent 936c52e263
commit c09f4039d1
  1. 6
      effects.cpp
  2. 2
      effects.h

@ -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…
Cancel
Save