From a53865e758ff4981e675f5b7280b237f1bb4bd19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= Date: Tue, 30 Sep 2014 19:19:54 +0300 Subject: Revert "fix problem where the previous code ignored callbacks for properties whose" This reverts commit 178b5ff626d747026fc9d03c7908c3f203fbd263. Conflicts: ChangeLog --- src/core/window-props.c | 71 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 24 deletions(-) diff --git a/src/core/window-props.c b/src/core/window-props.c index 608e06f3..7fb9ee6f 100644 --- a/src/core/window-props.c +++ b/src/core/window-props.c @@ -71,6 +71,12 @@ 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); @@ -120,34 +126,23 @@ meta_window_reload_properties_from_xwindow (MetaWindow *window, g_return_if_fail (n_properties > 0); values = g_new0 (MetaPropValue, n_properties); - - for (i=0; idisplay, - 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]; - } + init_prop_value (window->display, properties[i], &values[i]); + ++i; } meta_prop_get_values (window->display, xwindow, values, n_properties); - for (i=0; idisplay, - properties[i]); - - if (hooks && hooks->reload_func != NULL) - (* hooks->reload_func) (window, &values[i], initial); + reload_prop_value (window, &values[i], initial); + + ++i; } meta_prop_free_values (values, n_properties); @@ -155,6 +150,37 @@ 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, @@ -1546,9 +1572,6 @@ 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) -- cgit v1.2.1