From a3fe40762452b3164053c889b0a93f74aaf312c6 Mon Sep 17 00:00:00 2001 From: Simos Xenitellis Date: Fri, 10 Oct 2008 08:21:54 +0000 Subject: [PATCH] Fixed Bug 555000, check_algorithmically() applies to deadkey keysyms only. svn path=/trunk/; revision=21623 --- ChangeLog | 8 ++++++++ gtk/gtkimcontextsimple.c | 12 ++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42e0109906..e9270567b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-10-10 Simos Xenitellis + + Bug 555000 – Wrong treatment on non-spacing marks dead keys in + GtkIMContextSimple + + * gtk/gtkimcontextsimple.c: Change IS_DEY() macro so that + it on checksf input is a deadkey keysym. + 2008-10-09 Christian Dywan Bug 555676 – gtk_widget_real_grab_focus assumes toplevel == window diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c index 967d30c48f..66a1da15c1 100644 --- a/gtk/gtkimcontextsimple.c +++ b/gtk/gtkimcontextsimple.c @@ -410,16 +410,12 @@ check_normalize_nfc (gunichar* combination_buffer, gint n_compose) /* Checks if a keysym is a dead key. Dead key keysym values are defined in * ../gdk/gdkkeysyms.h and the first is GDK_dead_grave. As X.Org is updated, * more dead keys are added and we need to update the upper limit. - * Also checks if the keysym belongs to the non-spacing mark Unicode category, - * by invoking gdk_keyval_to_unicode(). For keysyms like 0x1000000 + 0x0301, - * it converts them to 0x301, which makes g_unichar_type() report them as - * non-spacing mark. Thus, we check that the value is less then 0x1000000. - * check_algorithmically() does not handle keysyms > 0x1000000. + * Currently, the upper limit is GDK_dead_dasia+1. The +1 has to do with + * a temporary issue in the X.Org header files. + * In future versions it will be just the keysym (no +1). */ #define IS_DEAD_KEY(k) \ - (((k) >= GDK_dead_grave && (k) <= (GDK_dead_dasia+1)) || \ - ((g_unichar_type (gdk_keyval_to_unicode (k)) == G_UNICODE_NON_SPACING_MARK) && \ - ((k) < 0x1000000))) + ((k) >= GDK_dead_grave && (k) <= (GDK_dead_dasia+1)) static gboolean check_algorithmically (GtkIMContextSimple *context_simple,