diff --git a/ChangeLog b/ChangeLog index ac355dbdc..2a709ec23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-04-07 iain + + * src/core/compositor.c (hide_overlay_window): Hide the overlay window + (meta_compositor_unmanage_screen): Release the compositor overlay. + (#526770) + 2008-04-07 Jens Granseuer * src/core/session.c: (save_state), diff --git a/src/core/compositor.c b/src/core/compositor.c index 188cae314..c37a78189 100644 --- a/src/core/compositor.c +++ b/src/core/compositor.c @@ -2407,11 +2407,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; @@ -2420,8 +2420,8 @@ hide_overlay_window (MetaScreen *screen, cow, ShapeBounding, 0, 0, region); XFixesDestroyRegion (display->xdisplay, region); -} #endif +} static Window get_output_window (MetaScreen *screen) @@ -2544,6 +2544,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) { @@ -2571,6 +2573,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