[gtk+/gtk-3-6] gtk: convert keyvals to unicode before committing to the imcontext (cherry picked from commit 9eea72



commit 423f97c3af28225d315646d6b37a23e52bb5f4d3
Author: Michael Natterer <mitch lanedo com>
Date:   Fri Nov 30 15:06:48 2012 +0100

    gtk: convert keyvals to unicode before committing to the imcontext
    (cherry picked from commit 9eea724e3b5eeb3d5d483b5a0c30d4b70a448741)

 gtk/gtkimcontextsimple.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c
index 1ffb42f..87debf2 100644
--- a/gtk/gtkimcontextsimple.c
+++ b/gtk/gtkimcontextsimple.c
@@ -371,7 +371,7 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
                             gint                n_compose)
 {
   GtkIMContextSimplePrivate *priv = context_simple->priv;
-  gunichar value = 0;
+  guint value = 0;
 
   if (n_compose == 2)
     {
@@ -382,7 +382,7 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
             {
             case GDK_KEY_dead_doubleacute:
             case GDK_KEY_space:
-              value = '"'; break;
+              value = GDK_KEY_quotedbl; break;
 
             case 'a': value = GDK_KEY_adiaeresis; break;
             case 'A': value = GDK_KEY_Adiaeresis; break;
@@ -395,7 +395,7 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
             case 'u': value = GDK_KEY_udiaeresis; break;
             case 'U': value = GDK_KEY_Udiaeresis; break;
             case 'y': value = GDK_KEY_ydiaeresis; break;
-            case 'Y': value = 0x0178; break; /* should be GDK_KEY_Ydiaeresis ?? */
+            case 'Y': value = GDK_KEY_Ydiaeresis; break;
             }
           break;
 
@@ -411,7 +411,8 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
 
   if (value > 0)
     {
-      gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
+      gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple),
+                                         gdk_keyval_to_unicode (value));
       priv->compose_buffer[0] = 0;
 
       GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]