Blob Blame History Raw
Index: libwnck/window.c
===================================================================
RCS file: /cvs/gnome/libwnck/libwnck/window.c,v
retrieving revision 1.69
diff -u -p -r1.69 window.c
--- libwnck/window.c	20 Jul 2006 17:45:44 -0000	1.69
+++ libwnck/window.c	12 Sep 2006 02:04:26 -0000
@@ -63,6 +63,7 @@ struct _WnckWindowPrivate
   WnckClassGroup *class_group;
   Window group_leader;
   Window transient_for;
+  GdkRectangle icon_geometry;
   char *name;
   char *icon_name;
   char *session_id;
@@ -222,6 +223,7 @@ wnck_window_init (WnckWindow *window)
   window->priv->name = NULL;
   window->priv->icon_name = NULL;
   window->priv->workspace = ALL_WORKSPACES;
+  window->priv->icon_geometry.width = -1; /* invalid cached value */
 
   window->priv->icon_cache = _wnck_icon_cache_new ();
 }
@@ -1661,6 +1663,17 @@ wnck_window_set_icon_geometry (WnckWindo
 			       int         width,
 			       int         height)
 {
+  if (window->priv->icon_geometry.x == x &&
+      window->priv->icon_geometry.y == y &&
+      window->priv->icon_geometry.width == width &&
+      window->priv->icon_geometry.height == height)
+    return;
+
+  window->priv->icon_geometry.x = x;
+  window->priv->icon_geometry.y = y;
+  window->priv->icon_geometry.width = width;
+  window->priv->icon_geometry.height = height;
+
   _wnck_set_icon_geometry (window->priv->xwindow,
                            x, y, width, height);
 }