[gtk+/gtk-2-24] imquartz: fix regression introduced by commit 4ba1fb
- From: Kristian Rietveld <kristian src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] imquartz: fix regression introduced by commit 4ba1fb
- Date: Sun, 7 Aug 2016 17:02:01 +0000 (UTC)
commit 899147d6d06d375d992ae28d250329b7b35a3ab4
Author: Kristian Rietveld <kris loopnest org>
Date: Mon Jul 18 22:00:48 2016 +0200
imquartz: fix regression introduced by commit 4ba1fb
In the preceding fix, the checks involving GDK_IS_QUARTZ_WINDOW macros
were left out. These checks are in fact crucial, because these functions
are sometimes called with non-quartz functions as the original comments
in the code do indicate. Therefore, reintroduce these checks. This
fixes a crash in GIMP.
gdk/quartz/gdkwindow-quartz.c | 2 ++
modules/input/imquartz.c | 9 +++++++++
2 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index 90aaa19..bab9afb 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -68,6 +68,8 @@ gdk_quartz_window_get_nsview (GdkWindow *window)
{
GdkWindowObject *private = (GdkWindowObject *)window;
+ g_return_val_if_fail (GDK_WINDOW_IS_QUARTZ (window), NULL);
+
if (GDK_WINDOW_DESTROYED (window))
return NULL;
diff --git a/modules/input/imquartz.c b/modules/input/imquartz.c
index f6d8f0f..033b0dd 100644
--- a/modules/input/imquartz.c
+++ b/modules/input/imquartz.c
@@ -194,6 +194,9 @@ quartz_filter_keypress (GtkIMContext *context,
if (!qc->client_window)
return FALSE;
+ if (!gdk_quartz_window_is_quartz (qc->client_window))
+ return gtk_im_context_filter_keypress (qc->slave, event);
+
nsview = gdk_quartz_window_get_nsview (qc->client_window);
win = (GdkWindow *)[ (GdkQuartzView *)nsview gdkWindow];
GTK_NOTE (MISC, g_print ("client_window: %p, win: %p, nsview: %p\n",
@@ -243,6 +246,9 @@ discard_preedit (GtkIMContext *context)
if (!qc->client_window)
return;
+ if (!gdk_quartz_window_is_quartz (qc->client_window))
+ return;
+
NSView *nsview = gdk_quartz_window_get_nsview (qc->client_window);
if (!nsview)
return;
@@ -313,6 +319,9 @@ quartz_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
if (!qc->client_window)
return;
+ if (!gdk_quartz_window_is_quartz (qc->client_window))
+ return;
+
if (!qc->focused)
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]