diff options
Diffstat (limited to 'x11-toolkits/gtk20')
-rw-r--r-- | x11-toolkits/gtk20/Makefile | 2 | ||||
-rw-r--r-- | x11-toolkits/gtk20/files/patch-gdk_gdkwindow.c | 37 |
2 files changed, 38 insertions, 1 deletions
diff --git a/x11-toolkits/gtk20/Makefile b/x11-toolkits/gtk20/Makefile index d984a64bae91..41507166e7a7 100644 --- a/x11-toolkits/gtk20/Makefile +++ b/x11-toolkits/gtk20/Makefile @@ -5,7 +5,7 @@ PORTNAME= gtk PORTVERSION= 2.24.19 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= x11-toolkits MASTER_SITES= GNOME MASTER_SITE_SUBDIR= sources/gtk+/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} diff --git a/x11-toolkits/gtk20/files/patch-gdk_gdkwindow.c b/x11-toolkits/gtk20/files/patch-gdk_gdkwindow.c new file mode 100644 index 000000000000..e1798160fad4 --- /dev/null +++ b/x11-toolkits/gtk20/files/patch-gdk_gdkwindow.c @@ -0,0 +1,37 @@ +Revert the following Gtk+ commit [1], this commit is seems to cause +firefox/thunderbird to crash [2]. Reverting this patch will make ff/tb stop +crashing while upstream is looking at the exact cause. + +[1] https://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=692a0e5906c5da7f85c16c9d6cbb0d3ed8b4a576 +[2] https://bugzilla.mozilla.org/show_bug.cgi?id=887587 + +All information: +http://lists.freebsd.org/pipermail/freebsd-gnome/2013-July/028852.html + +--- gdk/gdkwindow.c.orig 2013-07-25 11:01:16.000000000 +0200 ++++ gdk/gdkwindow.c 2013-07-25 11:02:24.000000000 +0200 +@@ -5463,7 +5463,6 @@ + GdkWindowImplIface *impl_iface; + gboolean save_region = FALSE; + GdkRectangle clip_box; +- int iteration; + + /* Ensure the window lives while updating it */ + g_object_ref (window); +@@ -5471,15 +5470,8 @@ + /* If an update got queued during update processing, we can get a + * window in the update queue that has an empty update_area. + * just ignore it. +- * +- * We run this multiple times if needed because on win32 the +- * first run can cause new (synchronous) updates from +- * gdk_window_flush_outstanding_moves(). However, we +- * limit it to two iterations to avoid any potential loops. + */ +- iteration = 0; +- while (private->update_area && +- iteration++ < 2) ++ if (private->update_area) + { + GdkRegion *update_area = private->update_area; + private->update_area = NULL; |