summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-06-09 06:29:45 +0200
committerBenjamin Otte <otte@redhat.com>2011-06-09 06:33:54 +0200
commit254b9a4c540e3dff1dcd17db2ceea6a9fa5df973 (patch)
tree3759c6d73e9188f2e919d02990b910de67f92413 /gdk
parent78ce7a4925272a165af85f7b7218c84a8a5ed0c9 (diff)
downloadgtk+-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.c20
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);
}
}