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

Reply via email to