diff options
author | Søren Sandmann <sandmann@redhat.com> | 2006-03-22 18:34:18 +0000 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@src.gnome.org> | 2006-03-22 18:34:18 +0000 |
commit | b11ac45352b9a59e72ac8350a74dbcde0be84d70 (patch) | |
tree | a62e5d5c8abc0028e08a6b6ca912a69325c8bd2d | |
parent | fd1e1c76e860b02f80da9f17fecba6d1ab9937a0 (diff) | |
download | metacity-b11ac45352b9a59e72ac8350a74dbcde0be84d70.tar.gz |
Actually remove the window.
Wed Mar 22 13:16:48 2006 Søren Sandmann <sandmann@redhat.com>
* src/compositor.c (meta_compositor_remove_window): Actually
remove the window.
* src/c-screen.c (meta_screen_info_remove_window): Only remove
node if non-NULL
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/c-screen.c | 13 | ||||
-rw-r--r-- | src/compositor.c | 11 |
3 files changed, 28 insertions, 4 deletions
@@ -1,3 +1,11 @@ +Wed Mar 22 13:16:48 2006 Søren Sandmann <sandmann@redhat.com> + + * src/compositor.c (meta_compositor_remove_window): Actually + remove the window. + + * src/c-screen.c (meta_screen_info_remove_window): Only remove + node if non-NULL + Wed Mar 22 10:33:21 2006 Søren Sandmann <sandmann@redhat.com> * src/c-screen.c (meta_screen_info_redirect): Put a square below diff --git a/src/c-screen.c b/src/c-screen.c index 5432c9f4..37310021 100644 --- a/src/c-screen.c +++ b/src/c-screen.c @@ -555,11 +555,16 @@ meta_screen_info_remove_window (MetaScreenInfo *info, { CmNode *node = find_node (info, xwindow); +#if 0 g_print ("removing %lx\n", xwindow); - - g_hash_table_remove (info->window_infos_by_xid, (gpointer)xwindow); - - cm_stacker_remove_child (info->stacker, node); +#endif + + if (node) + { + g_hash_table_remove (info->window_infos_by_xid, (gpointer)xwindow); + + cm_stacker_remove_child (info->stacker, node); + } } void diff --git a/src/compositor.c b/src/compositor.c index aa7622da..72fe9f47 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -395,9 +395,17 @@ process_destroy (MetaCompositor *compositor, screen = meta_display_screen_for_root (compositor->meta_display, event->event); + + +#if 0 + g_print ("destroywindow\n"); +#endif if (screen == NULL) { +#if 0 + g_print ("ignoring\n"); +#endif meta_topic (META_DEBUG_COMPOSITOR, "DestroyNotify received on non-root 0x%lx for 0x%lx\n", event->event, event->window); @@ -687,6 +695,9 @@ meta_compositor_remove_window (MetaCompositor *compositor, MetaScreenInfo *minfo; minfo = meta_screen_info_get_by_xwindow (xwindow); + + if (minfo) + meta_screen_info_remove_window (minfo, xwindow); #endif /* HAVE_COMPOSITE_EXTENSIONS */ } |