diff options
author | Havoc Pennington <hp@pobox.com> | 2002-12-01 03:58:04 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2002-12-01 03:58:04 +0000 |
commit | 5e1439f89e7acd7d57c4027eea2160953fb323f1 (patch) | |
tree | 43c90978783096f9858b781cc18b172d8f56192a /src/window-props.c | |
parent | eb40c5c2cfed8f4dae46fe865526cf880feec7ba (diff) | |
download | metacity-5e1439f89e7acd7d57c4027eea2160953fb323f1.tar.gz |
lengthen to 15 seconds
2002-11-30 Havoc Pennington <hp@pobox.com>
* src/screen.c (STARTUP_TIMEOUT): lengthen to 15 seconds
* src/util.c (utf8_fputs): hmm, return a value
* src/screen.c (meta_screen_apply_startup_properties): new
function to apply initial workspace based on startup sequence.
* src/window.c (meta_window_new): load _NET_STARTUP_ID
(meta_window_get_startup_id): new function
* src/window-props.c (meta_display_init_window_prop_hooks): add
hooks for _NET_STARTUP_ID
* src/display.c (event_callback): send property events to
groups.
* src/xprops.c (meta_prop_get_values): make a type of INVALID
mean to ignore that property (don't fetch its value).
* src/group.c (meta_group_property_notify): new function
* src/screen.c (set_supported_hint): support _NET_STARTUP_ID
* src/display.c (meta_display_open): add _NET_STARTUP_ID to atoms
we initialize
* src/group-private.h: private header shared between
group-props.c, group.c
* src/group-props.h, src/group-props.c: new files to contain
functions for retrieving group properties
* src/window.c (meta_window_same_application): change this a bit
to work with new definition of group
* src/group.c (meta_window_get_group): always create a group for
every window, using the window's own ID as group leader if
required.
* src/window.c (update_wm_hints): handle changes to group leader
* src/group.c (meta_window_group_leader_changed): new function
* src/display.h (struct _MetaDisplay): _NET_WM_WINDOW_TYPE_SPLASH,
not SPLASHSCREEN. Reported by Gregory Merchan and Matthias Clasen.
* src/screen.c (startup_sequence_timeout): when timing out a
startup sequence, send a remove message, don't just time it out
locally.
Diffstat (limited to 'src/window-props.c')
-rw-r--r-- | src/window-props.c | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/window-props.c b/src/window-props.c index 9bcfb1c3..f1d19ce6 100644 --- a/src/window-props.c +++ b/src/window-props.c @@ -97,10 +97,12 @@ init_prop_value (MetaDisplay *display, MetaPropValue *value) { MetaWindowPropHooks *hooks; + + value->type = META_PROP_VALUE_INVALID; + value->atom = None; hooks = find_hooks (display, property); - g_assert (hooks != NULL); - if (hooks->init_func != NULL) + if (hooks && hooks->init_func != NULL) (* hooks->init_func) (display, property, value); } @@ -111,8 +113,7 @@ reload_prop_value (MetaWindow *window, MetaWindowPropHooks *hooks; hooks = find_hooks (window->display, value->atom); - g_assert (hooks != NULL); - if (hooks->reload_func != NULL) + if (hooks && hooks->reload_func != NULL) (* hooks->reload_func) (window, value); } @@ -385,7 +386,33 @@ reload_win_workspace (MetaWindow *window, } } -#define N_HOOKS 22 + +static void +init_net_startup_id (MetaDisplay *display, + Atom property, + MetaPropValue *value) +{ + value->type = META_PROP_VALUE_UTF8; + value->atom = display->atom_net_startup_id; +} + +static void +reload_net_startup_id (MetaWindow *window, + MetaPropValue *value) +{ + g_free (window->startup_id); + + if (value->type != META_PROP_VALUE_INVALID) + window->startup_id = g_strdup (value->v.str); + else + window->startup_id = NULL; + + meta_verbose ("New _NET_STARTUP_ID \"%s\" for %s\n", + window->startup_id ? window->startup_id : "unset", + window->desc); +} + +#define N_HOOKS 23 void meta_display_init_window_prop_hooks (MetaDisplay *display) @@ -509,6 +536,11 @@ meta_display_init_window_prop_hooks (MetaDisplay *display) hooks[i].init_func = NULL; hooks[i].reload_func = NULL; ++i; + + hooks[i].property = display->atom_net_startup_id; + hooks[i].init_func = init_net_startup_id; + hooks[i].reload_func = reload_net_startup_id; + ++i; if (i != N_HOOKS) g_error ("Initialized %d hooks should have been %d\n", i, N_HOOKS); |