Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/bockbuild.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2011-07-26 09:35:52 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2011-07-26 09:47:55 +0400
commit4fcf220c39ef8546accbe023e54c9d1e1aa511e6 (patch)
treec3b332393caa51105b95be7654f1505a6396442c /packages
parent344cdbd2a385b2e79cc975991f27218cd9c619f3 (diff)
Update clipping patch
Diffstat (limited to 'packages')
-rw-r--r--packages/gtk+.py3
-rw-r--r--packages/patches/gtk/gdk-empty-clip.patch47
-rw-r--r--packages/patches/gtk/gdkemptypath.patch15
-rw-r--r--packages/patches/gtk/gdkwindow-quartz.patch14
4 files changed, 48 insertions, 31 deletions
diff --git a/packages/gtk+.py b/packages/gtk+.py
index 9633518..7cbc319 100644
--- a/packages/gtk+.py
+++ b/packages/gtk+.py
@@ -15,7 +15,6 @@ class GtkPackage (GnomePackage):
self.sources.extend ([
#patches from gtk-osx-build
'patches/gtk/gtkselection.patch',
- 'patches/gtk/gdkwindow-quartz.patch',
'patches/gtk/gtk-keyhash.patch',
'patches/gtk/gtk-relocation.patch',
'patches/gtk/gdk-deadkeys.patch',
@@ -41,7 +40,7 @@ class GtkPackage (GnomePackage):
# Bug 655087 - CoreGraphics error "clip: empty path" creating
# new window on Lion
# https://bugzilla.gnome.org/show_bug.cgi?id=655087
- 'patches/gtk/gdkemptypath.patch',
+ 'patches/gtk/gdk-empty-clip.patch',
# Bug 508601 - Copying from GTK+ applications causes crash
# https://bugzilla.gnome.org/show_bug.cgi?id=508601
diff --git a/packages/patches/gtk/gdk-empty-clip.patch b/packages/patches/gtk/gdk-empty-clip.patch
new file mode 100644
index 0000000..e71f22f
--- /dev/null
+++ b/packages/patches/gtk/gdk-empty-clip.patch
@@ -0,0 +1,47 @@
+diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
+index f058570..c8b791b 100644
+--- a/gdk/gdkwindow.c
++++ b/gdk/gdkwindow.c
+@@ -3744,7 +3744,7 @@ start_draw_helper (GdkDrawable *drawable,
+ impl = private->impl;
+ }
+
+- if (clip)
++ if (clip && !gdk_region_empty (clip))
+ _gdk_gc_add_drawable_clip (gc,
+ clip_region_tag, clip,
+ /* If there was a clip origin set appart from the
+@@ -5417,18 +5417,25 @@ _gdk_window_process_updates_recurse (GdkWindow *window,
+ {
+ if (private->event_mask & GDK_EXPOSURE_MASK)
+ {
++ GdkRegion *region_copy = gdk_region_copy (expose_region);
+ GdkEvent event;
+
+- event.expose.type = GDK_EXPOSE;
+- event.expose.window = g_object_ref (window);
+- event.expose.send_event = FALSE;
+- event.expose.count = 0;
+- event.expose.region = expose_region;
+- gdk_region_get_clipbox (expose_region, &event.expose.area);
++ gdk_region_intersect (region_copy, private->clip_region_with_children);
++ if (!gdk_region_empty (region_copy))
++ {
++ event.expose.type = GDK_EXPOSE;
++ event.expose.window = g_object_ref (window);
++ event.expose.send_event = FALSE;
++ event.expose.count = 0;
++ event.expose.region = expose_region;
++ gdk_region_get_clipbox (expose_region, &event.expose.area);
++
++ (*_gdk_event_func) (&event, _gdk_event_data);
+
+- (*_gdk_event_func) (&event, _gdk_event_data);
++ g_object_unref (window);
++ }
+
+- g_object_unref (window);
++ gdk_region_destroy (region_copy);
+ }
+ else if (private->bg_pixmap != GDK_NO_BG &&
+ private->window_type != GDK_WINDOW_FOREIGN)
diff --git a/packages/patches/gtk/gdkemptypath.patch b/packages/patches/gtk/gdkemptypath.patch
deleted file mode 100644
index b1ba890..0000000
--- a/packages/patches/gtk/gdkemptypath.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/gdk/quartz/gdkgc-quartz.c b/gdk/quartz/gdkgc-quartz.c
-index 21cc598..9b79be0 100644
---- a/gdk/quartz/gdkgc-quartz.c
-+++ b/gdk/quartz/gdkgc-quartz.c
-@@ -463,6 +463,10 @@ _gdk_quartz_gc_update_cg_context (GdkGC *gc,
- gdk_region_get_rectangles (_gdk_gc_get_clip_region (gc),
- &rects, &n_rects);
-
-+ /* No rects, nothing to do */
-+ if (n_rects == 0)
-+ return;
-+
- if (n_rects == 1)
- cg_rects = &rect;
- else
diff --git a/packages/patches/gtk/gdkwindow-quartz.patch b/packages/patches/gtk/gdkwindow-quartz.patch
deleted file mode 100644
index abf15e9..0000000
--- a/packages/patches/gtk/gdkwindow-quartz.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-git --diff a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
-index efc0672..85a6ef1 100644
---- a/gdk/quartz/gdkwindow-quartz.c
-+++ b/gdk/quartz/gdkwindow-quartz.c
-@@ -258,6 +258,9 @@ gdk_window_impl_quartz_begin_paint_region (GdkPaintable *paintable,
- goto done;
-
- gdk_region_get_rectangles (clipped_and_offset_region, &rects, &n_rects);
-+/* No rects, no point in going further */
-+ if (n_rects == 0)
-+ goto done;
-
- if (bg_pixmap == NULL)
- {