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>
* src/iconcache.c: include config.h

View File

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

View File

@ -841,6 +841,11 @@ meta_window_free (MetaWindow *window)
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.
* This is done first, so that if the unmap causes
* an EnterNotify the EnterNotify will have final say
@ -986,8 +991,6 @@ meta_window_free (MetaWindow *window)
meta_icon_cache_free (&window->icon_cache);
meta_window_shutdown_group (window);
g_free (window->sm_client_id);
g_free (window->wm_client_machine);
g_free (window->role);