[gtk+/gtk-2-24] gdk: Make background changes queue a repaint



commit 254b9a4c540e3dff1dcd17db2ceea6a9fa5df973
Author: Benjamin Otte <otte redhat com>
Date:   Thu Jun 9 06:29:45 2011 +0200

    gdk: Make background changes queue a repaint
    
    For client-side windows, we need to queue a repaint when the background
    changes. For native windows, the windowing system does take care of it,
    but client-side windows are our own, so we gotta do it manually.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=652102

 gdk/gdkwindow.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index f058570..10d83ab 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -8004,11 +8004,15 @@ gdk_window_set_background (GdkWindow      *window,
     }
 
   if (!GDK_WINDOW_DESTROYED (window) &&
-      gdk_window_has_impl (private) &&
       !private->input_only)
     {
-      impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
-      impl_iface->set_background (window, &private->bg_color);
+      if (gdk_window_has_impl (private))
+        {
+          impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
+          impl_iface->set_background (window, &private->bg_color);
+        }
+      else
+        gdk_window_invalidate_rect_full (window, NULL, TRUE, CLEAR_BG_ALL);
     }
 }
 
@@ -8077,11 +8081,15 @@ gdk_window_set_back_pixmap (GdkWindow *window,
     private->bg_pixmap = GDK_NO_BG;
 
   if (!GDK_WINDOW_DESTROYED (window) &&
-      gdk_window_has_impl (private) &&
       !private->input_only)
     {
-      impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
-      impl_iface->set_back_pixmap (window, private->bg_pixmap);
+      if (gdk_window_has_impl (private))
+        {
+          impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
+          impl_iface->set_back_pixmap (window, private->bg_pixmap);
+        }
+      else
+        gdk_window_invalidate_rect_full (window, NULL, TRUE, CLEAR_BG_ALL);
     }
 }
 



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