diff options
author | Benjamin Otte <otte@redhat.com> | 2011-06-09 06:29:45 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-06-09 06:33:54 +0200 |
commit | 254b9a4c540e3dff1dcd17db2ceea6a9fa5df973 (patch) | |
tree | 3759c6d73e9188f2e919d02990b910de67f92413 /gdk | |
parent | 78ce7a4925272a165af85f7b7218c84a8a5ed0c9 (diff) | |
download | gtk+-254b9a4c540e3dff1dcd17db2ceea6a9fa5df973.tar.gz |
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
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/gdkwindow.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index f05857041c..10d83ab066 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); } } |