diff --git a/effects/dashboard/dashboard.cpp b/effects/dashboard/dashboard.cpp index 39a0ad794d..41fe890b32 100644 --- a/effects/dashboard/dashboard.cpp +++ b/effects/dashboard/dashboard.cpp @@ -133,4 +133,30 @@ void DashboardEffect::windowActivated( EffectWindow *w ) } } +void DashboardEffect::windowAdded( EffectWindow* w ) + { + propertyNotify( w, atom ); + + + if( isDashboard( w ) ) + { + // Tell other windowAdded() effects to ignore this window + w->setData( WindowAddedGrabRole, QVariant::fromValue( static_cast( this ))); + w->addRepaintFull(); + } + } + +void DashboardEffect::windowClosed( EffectWindow* w ) + { + propertyNotify( w, atom ); + + + if( isDashboard( w ) ) + { + // Tell other windowClosed() effects to ignore this window + w->setData( WindowClosedGrabRole, QVariant::fromValue( static_cast( this ))); + w->addRepaintFull(); + } + } + } // namespace diff --git a/effects/dashboard/dashboard.h b/effects/dashboard/dashboard.h index eec6fc2b30..b0eb8f9b9a 100644 --- a/effects/dashboard/dashboard.h +++ b/effects/dashboard/dashboard.h @@ -43,6 +43,8 @@ class DashboardEffect : public KWin::Effect virtual void reconfigure( ReconfigureFlags ); virtual void unpropagate(); virtual void windowActivated( EffectWindow *w ); + virtual void windowAdded( EffectWindow* c ); + virtual void windowClosed( EffectWindow* c ); private: bool blur; bool isDashboard( EffectWindow* w );