[metacity] window: add set_icon_geometry() method



commit 1911a8386b722f78c48301a7cf056f3d99084882
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Jan 23 01:11:23 2013 +0100

    window: add set_icon_geometry() method
    
    Using a public method for setting the (cached) icon geometry rather
    than accessing the struct members directly allows setting the icon
    geometry from extensions.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=692997

 src/core/window-private.h |    3 +++
 src/core/window-props.c   |   15 +++++++++------
 src/core/window.c         |   15 +++++++++++++++
 3 files changed, 27 insertions(+), 6 deletions(-)
---
diff --git a/src/core/window-private.h b/src/core/window-private.h
index d54d03f..fe36694 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -645,6 +645,9 @@ void meta_window_update_layer (MetaWindow *window);
 gboolean meta_window_get_icon_geometry (MetaWindow    *window,
                                         MetaRectangle *rect);
 
+void     meta_window_set_icon_geometry (MetaWindow    *window,
+                                        MetaRectangle *rect);
+
 const char* meta_window_get_startup_id (MetaWindow *window);
 
 void meta_window_recalc_features    (MetaWindow *window);
diff --git a/src/core/window-props.c b/src/core/window-props.c
index c9a972e..c45f09b 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -359,16 +359,19 @@ reload_icon_geometry (MetaWindow    *window,
         }
       else
         {
-          window->icon_geometry.x = (int)value->v.cardinal_list.cardinals[0];
-          window->icon_geometry.y = (int)value->v.cardinal_list.cardinals[1];
-          window->icon_geometry.width = (int)value->v.cardinal_list.cardinals[2];
-          window->icon_geometry.height = (int)value->v.cardinal_list.cardinals[3];
-          window->icon_geometry_set = TRUE;
+          MetaRectangle geometry;
+
+          geometry.x = (int)value->v.cardinal_list.cardinals[0];
+          geometry.y = (int)value->v.cardinal_list.cardinals[1];
+          geometry.width = (int)value->v.cardinal_list.cardinals[2];
+          geometry.height = (int)value->v.cardinal_list.cardinals[3];
+
+          meta_window_set_icon_geometry (window, &geometry);
         }
     }
   else
     {
-      window->icon_geometry_set = FALSE;
+      meta_window_set_icon_geometry (window, NULL);
     }
 }
 
diff --git a/src/core/window.c b/src/core/window.c
index 506ad15..6947248 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5818,6 +5818,21 @@ meta_window_get_icon_geometry (MetaWindow    *window,
   return FALSE;
 }
 
+void
+meta_window_set_icon_geometry (MetaWindow    *window,
+                               MetaRectangle *rect)
+{
+  if (rect)
+    {
+      window->icon_geometry = *rect;
+      window->icon_geometry_set = TRUE;
+    }
+  else
+    {
+      window->icon_geometry_set = FALSE;
+    }
+}
+
 static Window
 read_client_leader (MetaDisplay *display,
                     Window       xwindow)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]