[gtk+/client-side-windows: 61/284] Don't remove composited childrens area when processing updates
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+/client-side-windows: 61/284] Don't remove composited childrens area when processing updates
- Date: Thu, 2 Apr 2009 14:04:51 -0400 (EDT)
commit a38e79794133e66c134c8fcd011bf9c1f1a4a7f0
Author: Alexander Larsson <alexl redhat com>
Date: Wed Dec 17 19:45:56 2008 +0100
Don't remove composited childrens area when processing updates
Handle shape when processing updates
Make sure we reset the old clips before setting new cairo clips
---
gdk/gdkwindow.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 01e4ef7..392a515 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -3986,6 +3986,8 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
{
cairo_save (cr);
cairo_identity_matrix (cr);
+
+ cairo_reset_clip (cr);
cairo_new_path (cr);
gdk_cairo_region (cr, private->clip_region);
@@ -4004,6 +4006,8 @@ gdk_window_set_cairo_clip (GdkDrawable *drawable,
cairo_save (cr);
cairo_identity_matrix (cr);
+ cairo_reset_clip (cr);
+
cairo_new_path (cr);
gdk_cairo_region (cr, paint->region);
cairo_restore (cr);
@@ -4166,7 +4170,7 @@ gdk_window_process_updates_recurse (GdkWindow *window,
{
child = l->data;
- if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only)
+ if (!GDK_WINDOW_IS_MAPPED (child) || child->input_only || child->composited)
continue;
/* Ignore offscreen children, as they don't draw in their parent and
@@ -4180,7 +4184,9 @@ gdk_window_process_updates_recurse (GdkWindow *window,
r.height = child->height;
child_region = gdk_region_rectangle (&r);
-
+ if (child->shape)
+ gdk_region_intersect (child_region, child->shape);
+
if (child->impl == private->impl)
{
/* Client side child, expose */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]