summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann <sandmann@redhat.com>2006-03-22 18:34:18 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2006-03-22 18:34:18 +0000
commitb11ac45352b9a59e72ac8350a74dbcde0be84d70 (patch)
treea62e5d5c8abc0028e08a6b6ca912a69325c8bd2d
parentfd1e1c76e860b02f80da9f17fecba6d1ab9937a0 (diff)
downloadmetacity-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--ChangeLog8
-rw-r--r--src/c-screen.c13
-rw-r--r--src/compositor.c11
3 files changed, 28 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index e1eb0965..a1d8375c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 */
}