Author: olivier
Date: 2008-05-18 16:14:26 +0000 (Sun, 18 May 2008)
New Revision: 26972

Modified:
   xfwm4/trunk/src/compositor.c
Log:
Fix a bug in overlays counting causing xscreensaver window to remain invisible 
(cont. bug #3849)

Modified: xfwm4/trunk/src/compositor.c
===================================================================
--- xfwm4/trunk/src/compositor.c        2008-05-17 22:35:56 UTC (rev 26971)
+++ xfwm4/trunk/src/compositor.c        2008-05-18 16:14:26 UTC (rev 26972)
@@ -1762,18 +1762,15 @@
     DisplayInfo *display_info;
 
     g_return_if_fail (cw != NULL);
-    TRACE ("entering map_win 0x%lx\n", cw->id);
+    TRACE ("entering map_win 0x%lx", cw->id);
 
     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) && WIN_IS_VIEWABLE (cw))
-        {
-            screen_info->wins_unredirected++;
-        }
+        screen_info->wins_unredirected++;
+        TRACE ("Mapping unredirected window 0x%lx, wins_unredirected increased 
to %i", cw->id, screen_info->wins_unredirected);
 #if HAVE_OVERLAYS
         if ((screen_info->wins_unredirected == 1) && 
(display_info->have_overlays))
         {
@@ -1781,7 +1778,6 @@
             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;
     }
 
@@ -1824,7 +1820,7 @@
     screen_info = cw->screen_info;
     display_info = screen_info->display_info;
 
-    if (!WIN_IS_REDIRECTED(cw) && WIN_IS_FULLSCREEN(cw) && 
(screen_info->wins_unredirected > 0))
+    if (!WIN_IS_REDIRECTED(cw) && (screen_info->wins_unredirected > 0))
     {
         screen_info->wins_unredirected--;
         TRACE ("Unmapped window 0x%lx, wins_unredirected decreased to %i", 
cw->id, screen_info->wins_unredirected);
@@ -1849,6 +1845,8 @@
 
     cw->viewable = FALSE;
     cw->damaged = FALSE;
+    cw->redirected = TRUE;
+
     free_win_data (cw, FALSE);
 }
 

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to