[Xfce4-commits] r26869 - xfwm4/trunk/src

Olivier Fourdan olivier at xfce.org
Sat Apr 19 13:10:09 CEST 2008


Author: olivier
Date: 2008-04-19 11:10:09 +0000 (Sat, 19 Apr 2008)
New Revision: 26869

Modified:
   xfwm4/trunk/src/client.c
   xfwm4/trunk/src/frame.c
Log:
Resync redraw when needed, avoid display refresh issues with compositor

Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c	2008-04-18 22:59:41 UTC (rev 26868)
+++ xfwm4/trunk/src/client.c	2008-04-19 11:10:09 UTC (rev 26869)
@@ -661,14 +661,10 @@
         change_values.height = frameHeight (c);
         XConfigureWindow (clientGetXDisplay (c), c->frame, change_mask, &change_values);
 
-        if (WIN_RESIZED)
+        if ((WIN_RESIZED) || (flags & CFG_FORCE_REDRAW))
         {
-            frameDraw (c, FALSE);
+            frameDraw (c, (flags & CFG_FORCE_REDRAW));
         }
-        else if (flags & CFG_FORCE_REDRAW)
-        {
-            frameQueueDraw (c, TRUE);
-        }
 
         change_values.x = frameLeft (c);
         change_values.y = frameTop (c);

Modified: xfwm4/trunk/src/frame.c
===================================================================
--- xfwm4/trunk/src/frame.c	2008-04-18 22:59:41 UTC (rev 26868)
+++ xfwm4/trunk/src/frame.c	2008-04-19 11:10:09 UTC (rev 26869)
@@ -831,7 +831,7 @@
 }
 
 static void
-frameDrawAll (Client * c)
+frameDrawWin (Client * c)
 {
     ScreenInfo *screen_info;
     FramePixmap frame_pix;
@@ -848,6 +848,8 @@
 
     g_return_if_fail (c != NULL);
 
+    frameClearQueueDraw (c);
+
     screen_info = c->screen_info;
     requires_clearing = FALSE;
     width_changed = FALSE;
@@ -893,10 +895,10 @@
     /* Cache mgmt */
     if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_NEEDS_REDRAW))
     {
+        FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_NEEDS_REDRAW);
         width_changed = TRUE;
         height_changed = TRUE;
         requires_clearing = TRUE;
-        frameClearQueueDraw (c);
     }
     else
     {
@@ -911,7 +913,6 @@
             c->previous_height = c->height;
         }
     }
-    FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_NEEDS_REDRAW);
 
     if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
         && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
@@ -1180,7 +1181,7 @@
     c = (Client *) data;
     g_return_val_if_fail (c, FALSE);
 
-    frameDrawAll (c);
+    frameDrawWin (c);
     c->frame_timeout_id = 0;
 
     return FALSE;
@@ -1211,7 +1212,7 @@
     {
         FLAG_SET (c->xfwm_flags, XFWM_FLAG_NEEDS_REDRAW);
     }
-    frameDrawAll (c);
+    frameDrawWin (c);
 }
 
 void



More information about the Xfce4-commits mailing list