From 76855e89994498a0fae5405623d594c98dcbe230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= Date: Thu, 26 Apr 2018 17:42:49 +0000 Subject: imcontextsimple: ensure W32 code only runs on W32 displays gdk_win32_keymap_check_compose() shouldn't be called for non-W32 displays (i.e. when using broadway or other backends that could be made to run on Windows). --- gtk/gtkimcontextsimple.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'gtk/gtkimcontextsimple.c') diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c index af41cc5d14..3ba25d2765 100644 --- a/gtk/gtkimcontextsimple.c +++ b/gtk/gtkimcontextsimple.c @@ -1238,28 +1238,31 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context, gboolean success = FALSE; #ifdef GDK_WINDOWING_WIN32 - guint16 output[2]; - gsize output_size = 2; - - switch (gdk_win32_keymap_check_compose (GDK_WIN32_KEYMAP (keymap), - priv->compose_buffer, - n_compose, - output, &output_size)) + if (GDK_IS_WIN32_DISPLAY (display)) { - case GDK_WIN32_KEYMAP_MATCH_NONE: - break; - case GDK_WIN32_KEYMAP_MATCH_EXACT: - case GDK_WIN32_KEYMAP_MATCH_PARTIAL: - for (i = 0; i < output_size; i++) + guint16 output[2]; + gsize output_size = 2; + + switch (gdk_win32_keymap_check_compose (GDK_WIN32_KEYMAP (keymap), + priv->compose_buffer, + n_compose, + output, &output_size)) { - output_char = gdk_keyval_to_unicode (output[i]); - gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), - output_char); + case GDK_WIN32_KEYMAP_MATCH_NONE: + break; + case GDK_WIN32_KEYMAP_MATCH_EXACT: + case GDK_WIN32_KEYMAP_MATCH_PARTIAL: + for (i = 0; i < output_size; i++) + { + output_char = gdk_keyval_to_unicode (output[i]); + gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), + output_char); + } + priv->compose_buffer[0] = 0; + return TRUE; + case GDK_WIN32_KEYMAP_MATCH_INCOMPLETE: + return TRUE; } - priv->compose_buffer[0] = 0; - return TRUE; - case GDK_WIN32_KEYMAP_MATCH_INCOMPLETE: - return TRUE; } #endif -- cgit v1.2.1