[gtk+/client-side-windows: 41/284] Don't actually clear background when mapped, as that causes ugly flashed. Just queue a repaint.



commit dc0e339697f159d81946b8893ecfb728654a649e
Author: Alexander Larsson <alexl redhat com>
Date:   Tue Dec 9 12:32:36 2008 +0100

    Don't actually clear background when mapped, as that causes ugly flashed. Just queue a repaint.
    This is what the X backend does too.
---
 gdk/gdkwindow.c |   26 +-------------------------
 1 files changed, 1 insertions(+), 25 deletions(-)

diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 750ea1e..d7586a3 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -4860,29 +4860,6 @@ gdk_window_foreign_new (GdkNativeWindow anid)
   return gdk_window_foreign_new_for_display (gdk_display_get_default (), anid);
 }
 
-/* Called when window becomes viewable. Clears and sends exposes
-   for all the already mapped windows in the hierarchy */
-static void
-synthesize_clears (GdkWindowObject *window)
-{
-  GList *l;
-  
-  if (!gdk_window_has_impl (window) && !window->input_only)
-    {
-      gdk_window_clear_area_e (GDK_WINDOW (window),
-			       0, 0,
-			       window->width, window->height);
-    }
-  
-  for (l = window->children; l != NULL; l = l->next)
-    {
-      GdkWindow *child = GDK_WINDOW (l->data);
-      
-      if (GDK_WINDOW_IS_MAPPED (child))
-	synthesize_clears (GDK_WINDOW_OBJECT (child));
-    }
-}
-
 static inline void
 gdk_window_raise_internal (GdkWindow *window)
 {
@@ -4951,8 +4928,7 @@ gdk_window_show_internal (GdkWindow *window, gboolean raise)
     }
   
   if (!was_mapped && gdk_window_is_viewable (window))
-    synthesize_clears (private);
-  
+    gdk_window_invalidate_rect (window, NULL, TRUE);
 }
   
 /**



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