summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriain <iain@gnome.org>2008-05-24 11:10:24 +0000
committerIain Holmes <iain@src.gnome.org>2008-05-24 11:10:24 +0000
commit2b8e9ff484ab6ca9d837f7bc11e31ffcebaa2664 (patch)
tree4e8ff91d0b807003b847510b8ed9080d9b5d0f04
parentfebf56713f665525dfe739f1730c1a52c960f45a (diff)
downloadmetacity-2b8e9ff484ab6ca9d837f7bc11e31ffcebaa2664.tar.gz
Turn on idle repainting. (hide_overlay_window): Hide overlay window
2008-04-07 iain <iain@gnome.org> * src/core/compositor.c (add_repair): Turn on idle repainting. (hide_overlay_window): Hide overlay window (meta_compositor_unmanage_screen): Release overlay window. Fixes #526770. svn path=/branches/gnome-2-22/; revision=3724
-rw-r--r--ChangeLog7
-rw-r--r--src/core/compositor.c12
2 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b51d09f1..c5549c39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-07 iain <iain@gnome.org>
+
+ * src/core/compositor.c (add_repair): Turn on idle repainting.
+ (hide_overlay_window): Hide overlay window
+ (meta_compositor_unmanage_screen): Release overlay window.
+ Fixes #526770.
+
2008-03-09 Thomas Thurman <tthurman@gnome.org>
* configure.in: Post-branch bump to 2.22.1.
diff --git a/src/core/compositor.c b/src/core/compositor.c
index 79d1206d..588cc6ac 100644
--- a/src/core/compositor.c
+++ b/src/core/compositor.c
@@ -1290,7 +1290,7 @@ add_repair (MetaDisplay *display)
if (compositor->repaint_id > 0)
return;
-#if 0
+#if 1
compositor->repaint_id = g_idle_add_full (G_PRIORITY_HIGH_IDLE,
compositor_idle_cb, compositor,
NULL);
@@ -2330,11 +2330,11 @@ show_overlay_window (MetaScreen *screen,
#endif
}
-#if 0
static void
hide_overlay_window (MetaScreen *screen,
Window cow)
{
+#ifdef HAVE_COW
MetaDisplay *display = screen->display;
XserverRegion region;
@@ -2343,8 +2343,8 @@ hide_overlay_window (MetaScreen *screen,
cow, ShapeBounding,
0, 0, region);
XFixesDestroyRegion (display->xdisplay, region);
-}
#endif
+}
static Window
get_output_window (MetaScreen *screen)
@@ -2460,6 +2460,8 @@ meta_compositor_unmanage_screen (MetaCompositor *compositor,
info = screen->compositor_data;
+ hide_overlay_window (screen, info->output);
+
/* Destroy the windows */
for (index = info->windows; index; index = index->next)
{
@@ -2481,6 +2483,10 @@ meta_compositor_unmanage_screen (MetaCompositor *compositor,
CompositeRedirectManual);
meta_screen_unset_cm_selection (screen);
+#ifdef HAVE_COW
+ XCompositeReleaseOverlayWindow (display->xdisplay, info->output);
+#endif
+
g_free (info);
screen->compositor_data = NULL;
#endif