Hi, There is currently no w->iconGeometry getter. This is required for plugins like animation, minimize and thumbnail.
This patch: -> Changes the XRectangle definition to CompRect as part of the new (unofficial) standard -> Adds a getter for priv->iconGeometry and priv->iconGeometrySet The patch is attached. Kind Regards, Sam -- Sam Spilsbury
From 7bdeeb7c5e3463ceac3db51a3b7bde31ecf76260 Mon Sep 17 00:00:00 2001 From: Sam Spilsbury <s...@xps-suse.site> Date: Tue, 10 Mar 2009 17:36:51 +0900 Subject: [PATCH] Add iconGeometry getters and change iconGeometry to CompRect --- include/core/window.h | 3 +++ src/privatewindow.h | 2 +- src/window.cpp | 26 ++++++++++++++++---------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/include/core/window.h b/include/core/window.h index a896d56..fa4cf9d 100644 --- a/include/core/window.h +++ b/include/core/window.h @@ -396,6 +396,9 @@ class CompWindow : CompIcon * getIcon (int width, int height); + CompRect iconGeometry (); + bool iconGeometrySet (); + int outputDevice (); bool onCurrentDesktop (); diff --git a/src/privatewindow.h b/src/privatewindow.h index ee3224e..7aa68bf 100644 --- a/src/privatewindow.h +++ b/src/privatewindow.h @@ -273,7 +273,7 @@ class PrivateWindow { std::vector<CompIcon *> icons; bool noIcons; - XRectangle iconGeometry; + CompRect iconGeometry; bool iconGeometrySet; XWindowChanges saveWc; diff --git a/src/window.cpp b/src/window.cpp index 45d8c8d..55d0828 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -353,10 +353,10 @@ PrivateWindow::updateIconGeometry () { unsigned long *geometry = (unsigned long *) data; - priv->iconGeometry.x = geometry[0]; - priv->iconGeometry.y = geometry[1]; - priv->iconGeometry.width = geometry[2]; - priv->iconGeometry.height = geometry[3]; + priv->iconGeometry.setX (geometry[0]); + priv->iconGeometry.setY (geometry[1]); + priv->iconGeometry.setWidth (geometry[2]); + priv->iconGeometry.setHeight (geometry[3]); priv->iconGeometrySet = true; } @@ -3922,6 +3922,18 @@ CompWindow::getIcon (int width, return icon; } +CompRect +CompWindow::iconGeometry () +{ + return priv->iconGeometry; +} + +bool +CompWindow::iconGeometrySet () +{ + return priv->iconGeometrySet; +} + void PrivateWindow::freeIcons () { @@ -4943,12 +4955,6 @@ PrivateWindow::PrivateWindow (CompWindow *window) : closeRequests (false), lastCloseRequestTime (0) { - iconGeometry.x = 0; - iconGeometry.y = 0; - iconGeometry.width = 0; - iconGeometry.height = 0; - iconGeometrySet = FALSE; - input.left = 0; input.right = 0; input.top = 0; -- 1.5.6
_______________________________________________ compiz mailing list compiz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/compiz