[gtk+] Make gdk_window_begin/end_paint handle non-viewable windows
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+] Make gdk_window_begin/end_paint handle non-viewable windows
- Date: Mon, 20 Jul 2009 20:36:20 +0000 (UTC)
commit 82e609c2a025224921908e3a0e7472256e7e1269
Author: Alexander Larsson <alexl redhat com>
Date: Mon Jul 20 22:36:02 2009 +0200
Make gdk_window_begin/end_paint handle non-viewable windows
These are updated to not read clip region is not viewable
gdk/gdkwindow.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 9ceb5d1..8bcec54 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -2475,10 +2475,10 @@ gdk_window_begin_paint_region (GdkWindow *window,
implicit_paint = impl_window->implicit_paint;
paint = g_new (GdkWindowPaint, 1);
- paint->region = gdk_region_copy (region);
+ paint->region = gdk_window_get_visible_region ((GdkDrawable *)window);
+ gdk_region_intersect (paint->region, region);
paint->region_tag = new_region_tag ();
- gdk_region_intersect (paint->region, private->clip_region_with_children);
gdk_region_get_clipbox (paint->region, &clip_box);
/* Convert to impl coords */
@@ -2641,6 +2641,9 @@ gdk_window_end_paint (GdkWindow *window)
private->paint_stack = g_slist_delete_link (private->paint_stack,
private->paint_stack);
+ if (!private->viewable)
+ goto non_viewable;
+
gdk_region_get_clipbox (paint->region, &clip_box);
tmp_gc = _gdk_drawable_get_scratch_gc (window, FALSE);
@@ -2680,6 +2683,8 @@ gdk_window_end_paint (GdkWindow *window)
/* Reset clip region of the cached GdkGC */
gdk_gc_set_clip_region (tmp_gc, NULL);
+ non_viewable:
+
cairo_surface_destroy (paint->surface);
g_object_unref (paint->pixmap);
gdk_region_destroy (paint->region);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]