Make mothod windowGeometryShapeChanged() a slot

The method windowGeometryShapeChanged() from the class Scene is now a slot. It is now connected to the signal geometryShapeChanged() which is sent from Toplevel instances Client and Unmanaged.
All direct method calls were deleted.
This commit is contained in:
Arthur Arlt 2011-06-19 22:07:19 +02:00
parent 59a8aac752
commit b63c9c1af8
14 changed files with 25 additions and 50 deletions

View file

@ -201,7 +201,7 @@ Client::Client(Workspace* ws)
ready_for_painting = false; // wait for first damage or sync reply
#endif
connect(this, SIGNAL(clientGeometryShapeChanged(KWin::Client*,QRect)), SIGNAL(geometryChanged()));
connect(this, SIGNAL(geometryShapeChanged(KWin::Toplevel*,QRect)), SIGNAL(geometryChanged()));
connect(this, SIGNAL(clientMaximizedStateChanged(KWin::Client*,KDecorationDefines::MaximizeMode)), SIGNAL(geometryChanged()));
connect(this, SIGNAL(clientStepUserMovedResized(KWin::Client*,QRect)), SIGNAL(geometryChanged()));
@ -376,9 +376,7 @@ void Client::updateDecoration(bool check_workspace_pos, bool force)
resizeDecorationPixmaps();
if (compositing())
discardWindowPixmap();
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit clientGeometryShapeChanged(this, oldgeom);
emit geometryShapeChanged(this, oldgeom);
} else
destroyDecoration();
if (check_workspace_pos)
@ -412,10 +410,8 @@ void Client::destroyDecoration()
decorationPixmapLeft = decorationPixmapRight = decorationPixmapTop = decorationPixmapBottom = QPixmap();
if (compositing())
discardWindowPixmap();
if (scene != NULL && !deleting)
scene->windowGeometryShapeChanged(this);
if (!deleting) {
emit clientGeometryShapeChanged(this, oldgeom);
emit geometryShapeChanged(this, oldgeom);
}
}
}
@ -789,9 +785,7 @@ void Client::updateShape()
addRepaintFull();
addWorkspaceRepaint(visibleRect()); // In case shape change removes part of this window
}
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit clientGeometryShapeChanged(this, geometry());
emit geometryShapeChanged(this, geometry());
}
static Window shape_helper_window = None;
@ -867,9 +861,7 @@ void Client::setMask(const QRegion& reg, int mode)
XShapeCombineShape(display(), frameId(), ShapeBounding, 0, 0,
shape_helper_window, ShapeBounding, ShapeSet);
}
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit clientGeometryShapeChanged(this, geometry());
emit geometryShapeChanged(this, geometry());
updateShape();
}

View file

@ -490,7 +490,6 @@ signals:
void clientMaximizedStateChanged(KWin::Client*, KDecorationDefines::MaximizeMode);
void clientMinimized(KWin::Client* client, bool animate);
void clientUnminimized(KWin::Client* client, bool animate);
void clientGeometryShapeChanged(KWin::Client* client, const QRect& old);
void clientStartUserMovedResized(KWin::Client*);
void clientStepUserMovedResized(KWin::Client *, const QRect&);
void clientFinishUserMovedResized(KWin::Client*);

View file

@ -146,7 +146,7 @@ void EffectsHandlerImpl::setupClientConnections(Client* c)
connect(c, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), this, SLOT(slotOpacityChanged(KWin::Toplevel*,qreal)));
connect(c, SIGNAL(clientMinimized(KWin::Client*,bool)), this, SLOT(slotClientMinimized(KWin::Client*,bool)));
connect(c, SIGNAL(clientUnminimized(KWin::Client*,bool)), this, SLOT(slotClientUnminimized(KWin::Client*,bool)));
connect(c, SIGNAL(clientGeometryShapeChanged(KWin::Client*,QRect)), this, SLOT(slotClientGeometryShapeChanged(KWin::Client*,QRect)));
connect(c, SIGNAL(geometryShapeChanged(KWin::Toplevel*,QRect)), this, SLOT(slotGeometryShapeChanged(KWin::Toplevel*,QRect)));
connect(c, SIGNAL(damaged(KWin::Toplevel*,QRect)), this, SLOT(slotWindowDamaged(KWin::Toplevel*,QRect)));
connect(c, SIGNAL(propertyNotify(KWin::Toplevel*,long)), this, SLOT(slotPropertyNotify(KWin::Toplevel*,long)));
}
@ -155,7 +155,7 @@ void EffectsHandlerImpl::setupUnmanagedConnections(Unmanaged* u)
{
connect(u, SIGNAL(unmanagedClosed(KWin::Unmanaged*)), this, SLOT(slotUnmanagedClosed(KWin::Unmanaged*)));
connect(u, SIGNAL(opacityChanged(KWin::Toplevel*,qreal)), this, SLOT(slotOpacityChanged(KWin::Toplevel*,qreal)));
connect(u, SIGNAL(unmanagedGeometryShapeChanged(KWin::Unmanaged*,QRect)), this, SLOT(slotUnmanagedGeometryShapeChanged(KWin::Unmanaged*,QRect)));
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)));
connect(u, SIGNAL(propertyNotify(KWin::Toplevel*,long)), this, SLOT(slotPropertyNotify(KWin::Toplevel*,long)));
}
@ -443,22 +443,13 @@ void EffectsHandlerImpl::slotWindowDamaged(Toplevel* t, const QRect& r)
emit windowDamaged(t->effectWindow(), r);
}
void EffectsHandlerImpl::slotClientGeometryShapeChanged(Client* c, const QRect& old)
void EffectsHandlerImpl::slotGeometryShapeChanged(Toplevel* t, const QRect& old)
{
// during late cleanup effectWindow() may be already NULL
// in some functions that may still call this
if (c == NULL || c->effectWindow() == NULL)
if (t == NULL || t->effectWindow() == NULL)
return;
emit windowGeometryShapeChanged(c->effectWindow(), old);
}
void EffectsHandlerImpl::slotUnmanagedGeometryShapeChanged(Unmanaged* u, const QRect& old)
{
// during late cleanup effectWindow() may be already NULL
// in some functions that may still call this
if (u == NULL || u->effectWindow() == NULL)
return;
emit windowGeometryShapeChanged(u->effectWindow(), old);
emit windowGeometryShapeChanged(t->effectWindow(), old);
}
void EffectsHandlerImpl::setActiveFullScreenEffect(Effect* e)

View file

@ -189,8 +189,7 @@ protected Q_SLOTS:
void slotOpacityChanged(KWin::Toplevel *t, qreal oldOpacity);
void slotClientMinimized(KWin::Client *c, bool animate);
void slotClientUnminimized(KWin::Client *c, bool animate);
void slotClientGeometryShapeChanged(KWin::Client *c, const QRect &old);
void slotUnmanagedGeometryShapeChanged(KWin::Unmanaged *u, const QRect &old);
void slotGeometryShapeChanged(KWin::Toplevel *t, const QRect &old);
void slotWindowDamaged(KWin::Toplevel *t, const QRect& r);
void slotPropertyNotify(KWin::Toplevel *t, long atom);
void slotPropertyNotify(long atom);

View file

@ -1599,9 +1599,7 @@ bool Unmanaged::windowEvent(XEvent* e)
detectShape(window());
addRepaintFull();
addWorkspaceRepaint(geometry()); // in case shape change removes part of this window
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit unmanagedGeometryShapeChanged(this, geometry());
emit geometryShapeChanged(this, geometry());
}
#ifdef HAVE_XDAMAGE
if (e->type == Extensions::damageNotifyEvent())
@ -1634,9 +1632,7 @@ void Unmanaged::configureNotifyEvent(XConfigureEvent* e)
addRepaintFull();
if (old.size() != geom.size())
discardWindowPixmap();
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit unmanagedGeometryShapeChanged(this, old);
emit geometryShapeChanged(this, old);
}
}

View file

@ -1897,9 +1897,7 @@ void Client::setGeometry(int x, int y, int w, int h, ForceGeometry_t force, bool
// which can happen when untabbing maximized windows
if (resized) {
discardWindowPixmap();
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit clientGeometryShapeChanged(this, geom_before_block);
emit geometryShapeChanged(this, geom_before_block);
}
const QRect deco_rect = decorationRect().translated(geom.x(), geom.y());
addWorkspaceRepaint(deco_rect_before_block);
@ -1973,9 +1971,7 @@ void Client::plainResize(int w, int h, ForceGeometry_t force, bool emitJs)
workspace()->updateStackingOrder();
workspace()->checkUnredirect();
discardWindowPixmap();
if (scene != NULL)
scene->windowGeometryShapeChanged(this);
emit clientGeometryShapeChanged(this, geom_before_block);
emit geometryShapeChanged(this, geom_before_block);
const QRect deco_rect = decorationRect().translated(geom.x(), geom.y());
addWorkspaceRepaint(deco_rect_before_block);
addWorkspaceRepaint(deco_rect);

View file

@ -57,8 +57,6 @@ public:
// Notification function - KWin core informs about changes.
// Used to mainly discard cached data.
// shape/size of a window changed
virtual void windowGeometryShapeChanged(Toplevel*) = 0;
// a new window has been created
virtual void windowAdded(Toplevel*) = 0;
// a window has been closed
@ -102,6 +100,8 @@ public:
protected Q_SLOTS:
// opacity of a window changed
virtual void windowOpacityChanged(KWin::Toplevel* c) = 0;
// shape/size of a window changed
virtual void windowGeometryShapeChanged(KWin::Toplevel* c) = 0;
protected:
// shared implementation, starts painting the screen
void paintScreen(int* mask, QRegion* region);

View file

@ -214,6 +214,7 @@ void SceneOpenGL::windowAdded(Toplevel* c)
assert(!windows.contains(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*)));
c->effectWindow()->setSceneWindow(windows[ c ]);
c->getShadow();
windows[ c ]->updateShadow(c->shadow());
@ -243,7 +244,7 @@ void SceneOpenGL::windowDeleted(Deleted* c)
c->effectWindow()->setSceneWindow(NULL);
}
void SceneOpenGL::windowGeometryShapeChanged(Toplevel* c)
void SceneOpenGL::windowGeometryShapeChanged(KWin::Toplevel* c)
{
if (!windows.contains(c)) // this is ok, shape is not valid
return; // by default

View file

@ -51,7 +51,6 @@ public:
return OpenGLCompositing;
}
virtual void paint(QRegion damage, ToplevelList windows);
virtual void windowGeometryShapeChanged(Toplevel*);
virtual void windowAdded(Toplevel*);
virtual void windowClosed(Toplevel*, Deleted*);
virtual void windowDeleted(Deleted*);
@ -62,6 +61,7 @@ protected:
QMatrix4x4 transformation(int mask, const ScreenPaintData &data) const;
protected Q_SLOTS:
virtual void windowOpacityChanged(KWin::Toplevel* c);
virtual void windowGeometryShapeChanged(KWin::Toplevel* c);
private:
bool selectMode();
bool initTfp();

View file

@ -289,7 +289,7 @@ void SceneXrender::paintBackground(QRegion region)
}
}
void SceneXrender::windowGeometryShapeChanged(Toplevel* c)
void SceneXrender::windowGeometryShapeChanged(KWin::Toplevel* c)
{
if (!windows.contains(c)) // this is ok, shape is not valid by default
return;
@ -336,6 +336,7 @@ void SceneXrender::windowAdded(Toplevel* c)
assert(!windows.contains(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*)));
c->effectWindow()->setSceneWindow(windows[ c ]);
c->getShadow();
windows[ c ]->updateShadow(c->shadow());

View file

@ -47,7 +47,6 @@ public:
return XRenderCompositing;
}
virtual void paint(QRegion damage, ToplevelList windows);
virtual void windowGeometryShapeChanged(Toplevel*);
virtual void windowAdded(Toplevel*);
virtual void windowClosed(Toplevel*, Deleted*);
virtual void windowDeleted(Deleted*);
@ -57,6 +56,7 @@ protected:
virtual void paintGenericScreen(int mask, ScreenPaintData data);
protected Q_SLOTS:
virtual void windowOpacityChanged(KWin::Toplevel* c);
virtual void windowGeometryShapeChanged(KWin::Toplevel* c);
private:
void paintTransformedScreen(int mask);
void createBuffer();

View file

@ -162,6 +162,7 @@ signals:
void damaged(KWin::Toplevel* toplevel, const QRect& damage);
void propertyNotify(KWin::Toplevel* toplevel, long a);
void geometryChanged();
void geometryShapeChanged(KWin::Toplevel* toplevel, const QRect& old);
protected:
virtual ~Toplevel();

View file

@ -32,7 +32,7 @@ namespace KWin
Unmanaged::Unmanaged(Workspace* ws)
: Toplevel(ws)
{
connect(this, SIGNAL(unmanagedGeometryShapeChanged(KWin::Unmanaged*,QRect)), SIGNAL(geometryChanged()));
connect(this, SIGNAL(geometryShapeChanged(KWin::Toplevel* ,QRect)), SIGNAL(geometryChanged()));
}
Unmanaged::~Unmanaged()

View file

@ -48,7 +48,6 @@ protected:
virtual bool shouldUnredirect() const;
Q_SIGNALS:
void unmanagedClosed(KWin::Unmanaged*);
void unmanagedGeometryShapeChanged(KWin::Unmanaged*, const QRect&);
private:
virtual ~Unmanaged(); // use release()
// handlers for X11 events