[metacity/gnome-2-26] fix problem where the previous code ignored callbacks for properties whose



commit 9a1ff07b551bafa3cb5b0580fd73350ce93463b4
Author: Thomas James Alexander Thurman <tthurman src gnome org>
Date:   Thu Mar 12 01:09:41 2009 +0000

    fix problem where the previous code ignored callbacks for properties whose
    
    	* src/core/window-props.c: fix problem where the previous
            code ignored callbacks for properties whose values weren't
            looked up.  Closes #572573.
    
    svn path=/trunk/; revision=4191

 ChangeLog               |   10 +++++-
 src/core/window-props.c |   71 ++++++++++++++++-------------------------------
 2 files changed, 32 insertions(+), 49 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index e68822d..c2a38bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,13 @@
-2009-03-16  Thomas Thurman  <tthurman gnome org>
+2009-07-06  Ori Avtalion  <ori avtalion name>
 
-        * NEWS: 2.26.0 release.
+	* src/core/window-props.c: fix problem where the previous
+        code ignored callbacks for properties whose values weren't
+        looked up.  Closes #572573.
 
+2009-03-16  Thomas Thurman  <tthurman gnome org>
+	 
+        * NEWS: 2.26.0 release.
+	
 2009-02-04  Neil Jagdish Patel  <njpatel gmail com>
 
 	* src/core/frame.c: queue resize on window undecorate
diff --git a/src/core/window-props.c b/src/core/window-props.c
index 2ef3597..06eb887 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -63,12 +63,6 @@ typedef struct MetaWindowPropHooks
   ReloadValueFunc   reload_func;
 } MetaWindowPropHooks;
 
-static void init_prop_value            (MetaDisplay   *display,
-                                        Atom           property,
-                                        MetaPropValue *value);
-static void reload_prop_value          (MetaWindow    *window,
-                                        MetaPropValue *value,
-                                        gboolean       initial);
 static MetaWindowPropHooks* find_hooks (MetaDisplay *display,
                                         Atom         property);
 
@@ -118,23 +112,34 @@ meta_window_reload_properties_from_xwindow (MetaWindow *window,
   g_return_if_fail (n_properties > 0);
   
   values = g_new0 (MetaPropValue, n_properties);
-  
-  i = 0;
-  while (i < n_properties)
+
+  for (i=0; i<n_properties; i++)
     {
-      init_prop_value (window->display, properties[i], &values[i]);
-      ++i;
+      MetaWindowPropHooks *hooks = find_hooks (window->display,
+                                               properties[i]);
+    
+      if (!hooks || hooks->type == META_PROP_VALUE_INVALID)
+        {
+          values[i].type = META_PROP_VALUE_INVALID;
+          values[i].atom = None;
+        }
+      else
+        {
+          values[i].type = hooks->type;
+          values[i].atom = properties[i];
+        }
     }
   
   meta_prop_get_values (window->display, xwindow,
                         values, n_properties);
 
-  i = 0;
-  while (i < n_properties)
+  for (i=0; i<n_properties; i++)
     {
-      reload_prop_value (window, &values[i], initial);
-      
-      ++i;
+      MetaWindowPropHooks *hooks = find_hooks (window->display,
+                                               properties[i]);
+
+      if (hooks && hooks->reload_func != NULL)
+        (* hooks->reload_func) (window, &values[i], initial);
     }
 
   meta_prop_free_values (values, n_properties);
@@ -142,37 +147,6 @@ meta_window_reload_properties_from_xwindow (MetaWindow *window,
   g_free (values);
 }
 
-/* Fill in the MetaPropValue used to get the value of "property" */
-static void
-init_prop_value (MetaDisplay   *display,
-                 Atom           property,
-                 MetaPropValue *value)
-{
-  MetaWindowPropHooks *hooks = find_hooks (display, property);
-    
-  if (!hooks || hooks->type == META_PROP_VALUE_INVALID)
-    {
-      value->type = META_PROP_VALUE_INVALID;
-      value->atom = None;
-    }
-  else
-    {
-      value->type = hooks->type;
-      value->atom = property;
-    }
-}
-
-static void
-reload_prop_value (MetaWindow    *window,
-                   MetaPropValue *value,
-                   gboolean       initial)
-{
-  MetaWindowPropHooks *hooks = find_hooks (window->display, value->atom);
-
-  if (hooks && hooks->reload_func != NULL)
-    (* hooks->reload_func) (window, value, initial);
-}
-
 static void
 reload_wm_client_machine (MetaWindow    *window,
                           MetaPropValue *value,
@@ -1469,6 +1443,9 @@ meta_display_free_window_prop_hooks (MetaDisplay *display)
   display->prop_hooks_table = NULL;
 }
 
+/**
+ * Finds the hooks for a particular property.
+ */
 static MetaWindowPropHooks*
 find_hooks (MetaDisplay *display,
             Atom         property)



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