move meta_window_shutdown_group() much earlier in the destroy process. May

2002-10-27  Havoc Pennington  <hp@pobox.com>

	* src/window.c (meta_window_free): move
	meta_window_shutdown_group() much earlier in the destroy process.
	May fix #96928 tracked down by Kjartan Maraas and Martin Garton.

	* src/group.c (meta_window_get_group): never add window to a group
	after we've started unmanaging the window
This commit is contained in:
Havoc Pennington 2002-10-27 14:45:29 +00:00 committed by Havoc Pennington
parent 04c9c3e058
commit 81089c2d8c
3 changed files with 18 additions and 3 deletions

View File

@ -1,3 +1,12 @@
2002-10-27 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_free): move
meta_window_shutdown_group() much earlier in the destroy process.
May fix #96928 tracked down by Kjartan Maraas and Martin Garton.
* src/group.c (meta_window_get_group): never add window to a group
after we've started unmanaging the window
2002-10-26 Havoc Pennington <hp@pobox.com> 2002-10-26 Havoc Pennington <hp@pobox.com>
* src/iconcache.c: include config.h * src/iconcache.c: include config.h

View File

@ -85,6 +85,9 @@ meta_group_unref (MetaGroup *group)
MetaGroup* MetaGroup*
meta_window_get_group (MetaWindow *window) meta_window_get_group (MetaWindow *window)
{ {
if (window->unmanaging)
return NULL;
if (window->cached_group == NULL && if (window->cached_group == NULL &&
window->xgroup_leader != None) /* some windows have no group */ window->xgroup_leader != None) /* some windows have no group */
{ {

View File

@ -840,7 +840,12 @@ meta_window_free (MetaWindow *window)
meta_group_update_layers (group); meta_group_update_layers (group);
meta_stack_thaw (window->screen->stack); meta_stack_thaw (window->screen->stack);
} }
meta_window_shutdown_group (window); /* safe to do this early as
* group.c won't re-add to the
* group if window->unmanaging
*/
/* If we have the focus, focus some other window. /* If we have the focus, focus some other window.
* This is done first, so that if the unmap causes * This is done first, so that if the unmap causes
* an EnterNotify the EnterNotify will have final say * an EnterNotify the EnterNotify will have final say
@ -985,8 +990,6 @@ meta_window_free (MetaWindow *window)
g_object_unref (G_OBJECT (window->mini_icon)); g_object_unref (G_OBJECT (window->mini_icon));
meta_icon_cache_free (&window->icon_cache); meta_icon_cache_free (&window->icon_cache);
meta_window_shutdown_group (window);
g_free (window->sm_client_id); g_free (window->sm_client_id);
g_free (window->wm_client_machine); g_free (window->wm_client_machine);