[gtk+/wip/simple-draw3: 19/23] Don't paint window backgrounds for non-double buffered windows
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/simple-draw3: 19/23] Don't paint window backgrounds for non-double buffered windows
- Date: Mon, 29 Apr 2013 19:52:24 +0000 (UTC)
commit 1224011b8a4fb854a9d6f89fb80350b81b7cf774
Author: Alexander Larsson <alexl redhat com>
Date: Mon Apr 29 14:40:46 2013 +0200
Don't paint window backgrounds for non-double buffered windows
We used to paint the background in begin_paint, which was never
called for non-double buffered windows, so we do the same in the
new world. This makes emacs painting work again.
gtk/gtkwidget.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index c2ca7bd..28683f6 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -6393,13 +6393,19 @@ _gtk_widget_draw_windows (GdkWindow *window,
if (gdk_cairo_get_clip_rectangle (cr, NULL))
{
- cairo_save (cr);
- pattern = gdk_window_get_background_pattern (window);
- cairo_set_source (cr, pattern);
- cairo_paint (cr);
- cairo_restore (cr);
-
gdk_window_get_user_data (window, (gpointer *) &widget);
+
+ /* Only clear bg if double bufferer. This is what we used
+ to do before, where begin_paint() did the clearing. */
+ if (widget->priv->double_buffered)
+ {
+ cairo_save (cr);
+ pattern = gdk_window_get_background_pattern (window);
+ cairo_set_source (cr, pattern);
+ cairo_paint (cr);
+ cairo_restore (cr);
+ }
+
do_clip = _gtk_widget_get_translation_to_window (widget, window,
&x, &y);
cairo_save (cr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]