[gtk+/client-side-windows: 250/284] Be more explicit about when to flush moves



commit 490cbf84cddc09ef472b187d5907bd6ba5a02b53
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Feb 5 10:47:11 2009 +0100

    Be more explicit about when to flush moves
    
    Also makes the non-doublebuffered case work better by flushing before we
    call _gdk_windowing_window_process_updates_recurse.
---
 gdk/gdkwindow.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 730c82e..6f381f2 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2088,8 +2088,6 @@ gdk_window_end_implicit_paint (GdkWindow *window)
 
   private->implicit_paint = NULL;
 
-  gdk_window_flush_outstanding_moves (window);
-
   if (!gdk_region_empty (paint->region))
     {
       /* Some regions are valid, push these to window now */
@@ -4499,9 +4497,15 @@ gdk_window_process_updates_internal (GdkWindow *window)
 
 	  gdk_region_get_clipbox (expose_region, &clip_box);
 	  end_implicit = gdk_window_begin_implicit_paint (window, &clip_box);
+	  if (end_implicit) /* rendering is not double buffered, do moves now */
+	      gdk_window_flush_outstanding_moves (window);
 	  _gdk_windowing_window_process_updates_recurse (window, expose_region);
 	  if (end_implicit)
-	    gdk_window_end_implicit_paint (window);
+	    {
+	      /* Do moves right before exposes are rendered */
+	      gdk_window_flush_outstanding_moves (window);
+	      gdk_window_end_implicit_paint (window);
+	    }
 	  
 	  if (expose_region != update_area)
 	    gdk_region_destroy (expose_region);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]