[gtk+] Fix cairo clipping to client side windows
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Fix cairo clipping to client side windows
- Date: Tue, 25 Aug 2009 13:49:13 +0000 (UTC)
commit 7cc8cf2888f8a295b0f348095e818c5495523e58
Author: Alexander Larsson <alexl redhat com>
Date: Tue Aug 25 15:43:52 2009 +0200
Fix cairo clipping to client side windows
When updating the clip region on cairo context (due to window changes or
paints of different sizes) we reset the old clip region, but this was
erronously done inside a cairo_save/cairo_restore pair, which made the
reset not take effect.
This fixes bug #592263.
gdk/gdkwindow.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 7ca6c3c..195ba3e 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -4602,11 +4602,11 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
if (!private->paint_stack)
{
+ cairo_reset_clip (cr);
+
cairo_save (cr);
cairo_identity_matrix (cr);
- cairo_reset_clip (cr);
-
cairo_new_path (cr);
gdk_cairo_region (cr, private->clip_region_with_children);
@@ -4619,13 +4619,12 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
/* Only needs to clip to region if piggybacking
on an implicit paint pixmap */
+ cairo_reset_clip (cr);
if (paint->uses_implicit)
{
cairo_save (cr);
cairo_identity_matrix (cr);
- cairo_reset_clip (cr);
-
cairo_new_path (cr);
gdk_cairo_region (cr, paint->region);
cairo_restore (cr);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]