diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2011-06-08 10:01:30 -0400 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2017-03-03 20:40:20 +0200 |
commit | f08aacbb60a60ad59ca98bc90b444008a39a6955 (patch) | |
tree | 945e18e7e84efbb7d2148a9ead68a009d57b488e /src/core/xprops.c | |
parent | 9af4756999c32a2fccd3ab5ae110f1b30798f977 (diff) | |
download | metacity-f08aacbb60a60ad59ca98bc90b444008a39a6955.tar.gz |
support properties with lists of XSyncCounter
Add META_PROP_VALUE_SYNC_COUNTER_LIST for a property that contains
multiple XSyncCounter values.
https://bugzilla.gnome.org/show_bug.cgi?id=685463
Diffstat (limited to 'src/core/xprops.c')
-rw-r--r-- | src/core/xprops.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/xprops.c b/src/core/xprops.c index 81267fe3..ae45f5f0 100644 --- a/src/core/xprops.c +++ b/src/core/xprops.c @@ -578,6 +578,21 @@ counter_from_results (GetPropertyResults *results, return TRUE; } +static gboolean +counter_list_from_results (GetPropertyResults *results, + XSyncCounter **counters_p, + int *n_counters_p) +{ + if (!validate_or_free_results (results, 32, XA_CARDINAL, FALSE)) + return FALSE; + + *counters_p = (XSyncCounter*) results->prop; + *n_counters_p = results->n_items; + results->prop = NULL; + + return TRUE; +} + gboolean meta_prop_get_window (MetaDisplay *display, Window xwindow, @@ -1033,6 +1048,7 @@ meta_prop_get_values (MetaDisplay *display, values[i].required_type = XA_WM_SIZE_HINTS; break; case META_PROP_VALUE_SYNC_COUNTER: + case META_PROP_VALUE_SYNC_COUNTER_LIST: values[i].required_type = XA_CARDINAL; break; default: @@ -1190,6 +1206,12 @@ meta_prop_get_values (MetaDisplay *display, &values[i].v.xcounter)) values[i].type = META_PROP_VALUE_INVALID; break; + case META_PROP_VALUE_SYNC_COUNTER_LIST: + if (!counter_list_from_results (&results, + &values[i].v.xcounter_list.counters, + &values[i].v.xcounter_list.n_counters)) + values[i].type = META_PROP_VALUE_INVALID; + break; default: break; } @@ -1244,6 +1266,9 @@ free_value (MetaPropValue *value) break; case META_PROP_VALUE_SYNC_COUNTER: break; + case META_PROP_VALUE_SYNC_COUNTER_LIST: + meta_XFree (value->v.xcounter_list.counters); + break; default: break; } |