[Xfce4-commits] r26604 - xfwm4/trunk/src
Olivier Fourdan
olivier at xfce.org
Sun Feb 10 23:31:48 CET 2008
Author: olivier
Date: 2008-02-10 22:31:48 +0000 (Sun, 10 Feb 2008)
New Revision: 26604
Modified:
xfwm4/trunk/src/compositor.c
Log:
Bug fix with fullscreen overlays
Modified: xfwm4/trunk/src/compositor.c
===================================================================
--- xfwm4/trunk/src/compositor.c 2008-02-09 16:22:39 UTC (rev 26603)
+++ xfwm4/trunk/src/compositor.c 2008-02-10 22:31:48 UTC (rev 26604)
@@ -16,7 +16,7 @@
xcompmgr - (c) 2003 Keith Packard
metacity - (c) 2003, 2004 Red Hat, Inc.
- xfwm4 - (c) 2005-2007 Olivier Fourdan
+ xfwm4 - (c) 2005-2008 Olivier Fourdan
*/
@@ -1762,30 +1762,32 @@
DisplayInfo *display_info;
g_return_if_fail (cw != NULL);
- TRACE ("entering map_win 0x%lx", cw->id);
+ TRACE ("entering map_win 0x%lx\n", cw->id);
- cw->viewable = TRUE;
- cw->damaged = FALSE;
-
screen_info = cw->screen_info;
display_info = screen_info->display_info;
if (!WIN_IS_REDIRECTED(cw))
{
/* To be safe, we count only the fullscreen overlays */
- if (WIN_IS_FULLSCREEN(cw))
+ if (WIN_IS_FULLSCREEN(cw) && WIN_IS_VIEWABLE (cw))
{
screen_info->wins_unredirected++;
}
#if HAVE_OVERLAYS
if ((screen_info->wins_unredirected == 1) && (display_info->have_overlays))
{
+ TRACE ("Unmapping overlay window");
XUnmapWindow (myScreenGetXDisplay (screen_info), screen_info->overlay);
}
#endif /* HAVE_OVERLAYS */
TRACE ("Mapping unredirected window 0x%lx, wins_unredirected increased to %i", cw->id, screen_info->wins_unredirected);
return;
}
+
+ cw->viewable = TRUE;
+ cw->damaged = FALSE;
+
if (!screen_info->params->unredirect_overlays)
{
TRACE ("Not unredirecting wins_unredirected");
@@ -1832,6 +1834,7 @@
#if HAVE_OVERLAYS
if (display_info->have_overlays)
{
+ TRACE ("Remapping overlay window");
XMapWindow (myScreenGetXDisplay (screen_info), screen_info->overlay);
}
#endif /* HAVE_OVERLAYS */
@@ -2148,7 +2151,10 @@
{
ScreenInfo *screen_info;
- unmap_win (cw);
+ if (WIN_IS_VIEWABLE (cw))
+ {
+ unmap_win (cw);
+ }
screen_info = cw->screen_info;
screen_info->cwindows = g_list_remove (screen_info->cwindows, (gconstpointer) cw);
@@ -2439,7 +2445,10 @@
cw = find_cwindow_in_display (display_info, ev->window);
if (cw)
{
- unmap_win (cw);
+ if (WIN_IS_VIEWABLE (cw))
+ {
+ unmap_win (cw);
+ }
}
}
More information about the Xfce4-commits
mailing list