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:
parent
59a8aac752
commit
b63c9c1af8
14 changed files with 25 additions and 50 deletions
18
client.cpp
18
client.cpp
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
1
client.h
1
client.h
|
@ -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*);
|
||||
|
|
19
effects.cpp
19
effects.cpp
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
4
scene.h
4
scene.h
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue