Xamarin Public Jenkins (auto-signing) 6bdd276d05 Imported Upstream version 5.0.0.42
Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
2017-04-10 11:41:01 +00:00

50 lines
1.9 KiB
Diff

From 4ba1fbfdb15fdf31643b7c88ca457b0eb71a0c00 Mon Sep 17 00:00:00 2001
From: David Lechner <david@lechnology.com>
Date: Fri, 2 Oct 2015 13:45:00 +0000
Subject: [PATCH] Bug 753992 - im-quartz discard_preedit segmentation fault
Replace checking if the NSView is really a GdkWindow, which will crash
in the likely event it's not a GObject, with ensuring that the parent
GdkWindow is really a GdkWindowQuartz.
---
modules/input/imquartz.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/modules/input/imquartz.c b/modules/input/imquartz.c
index 67c7d6c..f6d8f0f 100644
--- a/modules/input/imquartz.c
+++ b/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);