gtk: convert keyvals to unicode before committing to the imcontext

(cherry picked from commit 1eb0d98d73)
This commit is contained in:
Michael Natterer 2012-11-30 15:06:48 +01:00 committed by Michael Natterer
parent f619f91a8f
commit 9eea724e3b

View File

@ -371,7 +371,7 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
gint n_compose) gint n_compose)
{ {
GtkIMContextSimplePrivate *priv = context_simple->priv; GtkIMContextSimplePrivate *priv = context_simple->priv;
gunichar value = 0; guint value = 0;
if (n_compose == 2) if (n_compose == 2)
{ {
@ -382,7 +382,7 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
{ {
case GDK_KEY_dead_doubleacute: case GDK_KEY_dead_doubleacute:
case GDK_KEY_space: 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;
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 'U': value = GDK_KEY_Udiaeresis; break; case 'U': value = GDK_KEY_Udiaeresis; break;
case 'y': value = GDK_KEY_ydiaeresis; 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; break;
@ -411,7 +411,8 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
if (value > 0) 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; priv->compose_buffer[0] = 0;
GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value)); GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));