Modified: trunk/dports/gnome/gtk2/Portfile (141282 => 141283)
--- trunk/dports/gnome/gtk2/Portfile 2015-10-14 14:21:49 UTC (rev 141282)
+++ trunk/dports/gnome/gtk2/Portfile 2015-10-14 14:59:20 UTC (rev 141283)
@@ -8,6 +8,7 @@
name gtk2
version 2.24.28
+revision 1
set branch [join [lrange [split ${version} .] 0 1] .]
categories gnome x11
license LGPL-2+
@@ -51,6 +52,11 @@
patchfiles-append patch-aliases.diff
patchfiles-append patch-gtk-builder-convert.diff
+# temporary patch before the next release
+# ticket #49090: "gtk2 crashing in 10.11"
+
+patchfiles-append patch-modules_input_imquartz.diff
+
# autoreconf to deal with stupid issues during install (install: .libs/libferret.lai: No such file or directory)
use_autoreconf yes
autoreconf.args -fvi
Added: trunk/dports/gnome/gtk2/files/patch-modules_input_imquartz.diff (0 => 141283)
--- trunk/dports/gnome/gtk2/files/patch-modules_input_imquartz.diff (rev 0)
+++ trunk/dports/gnome/gtk2/files/patch-modules_input_imquartz.diff 2015-10-14 14:59:20 UTC (rev 141283)
@@ -0,0 +1,35 @@
+--- modules/input/imquartz.c.orig
++++ modules/input/imquartz.c
+@@ -195,11 +195,7 @@ quartz_filter_keypress (GtkIMContext *context,
+ return FALSE;
+
+ nsview = gdk_quartz_window_get_nsview (qc->client_window);
+- if (GDK_IS_WINDOW (nsview))
+- /* it gets GDK_WINDOW in some cases */
+- return gtk_im_context_filter_keypress (qc->slave, event);
+- else
+- win = (GdkWindow *)[ (GdkQuartzView *)nsview gdkWindow];
++ win = (GdkWindow *)[ (GdkQuartzView *)nsview gdkWindow];
+ GTK_NOTE (MISC, g_print ("client_window: %p, win: %p, nsview: %p\n",
+ qc->client_window, win, nsview));
+
+@@ -251,9 +247,6 @@ discard_preedit (GtkIMContext *context)
+ if (!nsview)
+ return;
+
+- if (GDK_IS_WINDOW (nsview))
+- return;
+-
+ /* reset any partial input for this NSView */
+ [(GdkQuartzView *)nsview unmarkText];
+ NSInputManager *currentInputManager = [NSInputManager currentInputManager];
+@@ -334,9 +327,6 @@ quartz_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
+ qc->cursor_rect->y = area->y + y;
+
+ nsview = gdk_quartz_window_get_nsview (qc->client_window);
+- if (GDK_IS_WINDOW (nsview))
+- /* it returns GDK_WINDOW in some cases */
+- return;
+
+ win = (GdkWindow *)[ (GdkQuartzView*)nsview gdkWindow];
+ g_object_set_data (G_OBJECT (win), GIC_CURSOR_RECT, qc->cursor_rect);