From 02e08be5bddec0759ab1d7858fad21f182a6cc18 Mon Sep 17 00:00:00 2001 From: Arthur Arlt Date: Tue, 21 Jun 2011 13:52:25 +0200 Subject: [PATCH] Merge signals clientClosed() and unmanagedClosed() to windowClosed() This commit merges the two signals clientClosed() and unmanagedClosed() to windowClosed() which is now provided by Toplevel. The approriate slots in effects.h and effects.cpp were merges as well, since they did the same. The direct method calls of the method windowClosed() in SceneOpenGL and SceneXRender were removed and are now connected to the appropriate signal in windowAdded(). --- client.cpp | 10 ++-------- client.h | 1 - effects.cpp | 11 +++-------- effects.h | 3 +-- scene_opengl.cpp | 1 + scene_xrender.cpp | 1 + toplevel.h | 1 + unmanaged.cpp | 5 +---- unmanaged.h | 2 -- 9 files changed, 10 insertions(+), 25 deletions(-) diff --git a/client.cpp b/client.cpp index aad9315282..82188ff0fc 100644 --- a/client.cpp +++ b/client.cpp @@ -246,10 +246,7 @@ void Client::releaseWindow(bool on_shutdown) assert(!deleting); deleting = true; Deleted* del = Deleted::create(this); - emit clientClosed(this); - if (scene) { - scene->windowClosed(this, del); - } + emit windowClosed(this, del); finishCompositing(); workspace()->discardUsedWindowRules(this, true); // Remove ForceTemporarily rules StackingUpdatesBlocker blocker(workspace()); @@ -314,10 +311,7 @@ void Client::destroyClient() assert(!deleting); deleting = true; Deleted* del = Deleted::create(this); - emit clientClosed(this); - if (scene) { - scene->windowClosed(this, del); - } + emit windowClosed(this, del); finishCompositing(); workspace()->discardUsedWindowRules(this, true); // Remove ForceTemporarily rules StackingUpdatesBlocker blocker(workspace()); diff --git a/client.h b/client.h index a50b1b2b32..ef935c81c5 100644 --- a/client.h +++ b/client.h @@ -486,7 +486,6 @@ signals: void maximizeSet(QPair); void s_activated(); void s_fullScreenSet(bool, bool); - void clientClosed(KWin::Client*); void clientMaximizedStateChanged(KWin::Client*, KDecorationDefines::MaximizeMode); void clientMinimized(KWin::Client* client, bool animate); void clientUnminimized(KWin::Client* client, bool animate); diff --git a/effects.cpp b/effects.cpp index c54d5a6146..9288c4a44c 100644 --- a/effects.cpp +++ b/effects.cpp @@ -138,7 +138,7 @@ EffectsHandlerImpl::~EffectsHandlerImpl() void EffectsHandlerImpl::setupClientConnections(Client* c) { - connect(c, SIGNAL(clientClosed(KWin::Client*)), this, SLOT(slotClientClosed(KWin::Client*))); + connect(c, SIGNAL(windowClosed(KWin::Toplevel*,KWin::Deleted*)), this, SLOT(slotWindowClosed(KWin::Toplevel*))); connect(c, SIGNAL(clientMaximizedStateChanged(KWin::Client*,KDecorationDefines::MaximizeMode)), this, SLOT(slotClientMaximized(KWin::Client*,KDecorationDefines::MaximizeMode))); connect(c, SIGNAL(clientStartUserMovedResized(KWin::Client*)), this, SLOT(slotClientStartUserMovedResized(KWin::Client*))); connect(c, SIGNAL(clientStepUserMovedResized(KWin::Client*,QRect)), this, SLOT(slotClientStepUserMovedResized(KWin::Client*,QRect))); @@ -153,7 +153,7 @@ void EffectsHandlerImpl::setupClientConnections(Client* c) void EffectsHandlerImpl::setupUnmanagedConnections(Unmanaged* u) { - connect(u, SIGNAL(unmanagedClosed(KWin::Unmanaged*)), this, SLOT(slotUnmanagedClosed(KWin::Unmanaged*))); + connect(u, SIGNAL(windowClosed(KWin::Toplevel*,KWin::Deleted*)), this, SLOT(slotWindowClosed(KWin::Toplevel*))); connect(u, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), this, SLOT(slotOpacityChanged(KWin::Toplevel*,qreal))); connect(u, SIGNAL(geometryShapeChanged(KWin::Toplevel*,QRect)), this, SLOT(slotGeometryShapeChanged(KWin::Toplevel*,QRect))); connect(u, SIGNAL(damaged(KWin::Toplevel*,QRect)), this, SLOT(slotWindowDamaged(KWin::Toplevel*,QRect))); @@ -380,16 +380,11 @@ void EffectsHandlerImpl::slotDeletedRemoved(KWin::Deleted *d) elevated_windows.removeAll(d->effectWindow()); } -void EffectsHandlerImpl::slotClientClosed(Client *c) +void EffectsHandlerImpl::slotWindowClosed(KWin::Toplevel *c) { emit windowClosed(c->effectWindow()); } -void EffectsHandlerImpl::slotUnmanagedClosed(Unmanaged* u) -{ - emit windowClosed(u->effectWindow()); -} - void EffectsHandlerImpl::slotClientActivated(KWin::Client *c) { emit windowActivated(c ? c->effectWindow() : NULL); diff --git a/effects.h b/effects.h index f735f6b418..75df0cc112 100644 --- a/effects.h +++ b/effects.h @@ -178,8 +178,7 @@ protected Q_SLOTS: void slotDesktopChanged(int old); void slotClientAdded(KWin::Client *c); void slotUnmanagedAdded(KWin::Unmanaged *u); - void slotClientClosed(KWin::Client *c); - void slotUnmanagedClosed(KWin::Unmanaged *u); + void slotWindowClosed(KWin::Toplevel *c); void slotClientActivated(KWin::Client *c); void slotDeletedRemoved(KWin::Deleted *d); void slotClientMaximized(KWin::Client *c, KDecorationDefines::MaximizeMode maxMode); diff --git a/scene_opengl.cpp b/scene_opengl.cpp index 8193955847..ca056680c8 100644 --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -215,6 +215,7 @@ void SceneOpenGL::windowAdded(Toplevel* c) windows[ c ] = new Window(c); connect(c, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), SLOT(windowOpacityChanged(KWin::Toplevel*))); connect(c, SIGNAL(geometryShapeChanged(KWin::Toplevel*,QRect)), SLOT(windowGeometryShapeChanged(KWin::Toplevel*))); + connect(c, SIGNAL(windowClosed(KWin::Toplevel*,KWin::Deleted*)), SLOT(windowClosed(KWin::Toplevel*,KWin::Deleted*))); c->effectWindow()->setSceneWindow(windows[ c ]); c->getShadow(); windows[ c ]->updateShadow(c->shadow()); diff --git a/scene_xrender.cpp b/scene_xrender.cpp index a943504d42..5fdd2c94d3 100644 --- a/scene_xrender.cpp +++ b/scene_xrender.cpp @@ -337,6 +337,7 @@ void SceneXrender::windowAdded(Toplevel* c) windows[ c ] = new Window(c); connect(c, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), SLOT(windowOpacityChanged(KWin::Toplevel*))); connect(c, SIGNAL(geometryShapeChanged(KWin::Toplevel*,QRect)), SLOT(windowGeometryShapeChanged(KWin::Toplevel*))); + connect(c, SIGNAL(windowClosed(KWin::Toplevel*,KWin::Deleted*)), SLOT(windowClosed(KWin::Toplevel*,KWin::Deleted*))); c->effectWindow()->setSceneWindow(windows[ c ]); c->getShadow(); windows[ c ]->updateShadow(c->shadow()); diff --git a/toplevel.h b/toplevel.h index 0ec13b452f..35f1bb57cb 100644 --- a/toplevel.h +++ b/toplevel.h @@ -163,6 +163,7 @@ signals: void propertyNotify(KWin::Toplevel* toplevel, long a); void geometryChanged(); void geometryShapeChanged(KWin::Toplevel* toplevel, const QRect& old); + void windowClosed(KWin::Toplevel* toplevel, KWin::Deleted* deleted); protected: virtual ~Toplevel(); diff --git a/unmanaged.cpp b/unmanaged.cpp index 9a0aa35373..8d0a78f4ae 100644 --- a/unmanaged.cpp +++ b/unmanaged.cpp @@ -82,10 +82,7 @@ bool Unmanaged::track(Window w) void Unmanaged::release() { Deleted* del = Deleted::create(this); - emit unmanagedClosed(this); - if (scene) { - scene->windowClosed(this, del); - } + emit windowClosed(this, del); finishCompositing(); workspace()->removeUnmanaged(this, Allowed); if (!QWidget::find(window())) { // don't affect our own windows diff --git a/unmanaged.h b/unmanaged.h index c801c4b3de..f915b12889 100644 --- a/unmanaged.h +++ b/unmanaged.h @@ -46,8 +46,6 @@ public: protected: virtual void debug(QDebug& stream) const; virtual bool shouldUnredirect() const; -Q_SIGNALS: - void unmanagedClosed(KWin::Unmanaged*); private: virtual ~Unmanaged(); // use release() // handlers for X11 events