]> Pileus Git - ~andy/gtk/commitdiff
Fixed Bug 555000, check_algorithmically() applies to deadkey keysyms only.
authorSimos Xenitellis <simos@src.gnome.org>
Fri, 10 Oct 2008 08:21:54 +0000 (08:21 +0000)
committerSimos Xenitellis <simos@src.gnome.org>
Fri, 10 Oct 2008 08:21:54 +0000 (08:21 +0000)
svn path=/trunk/; revision=21623

ChangeLog
gtk/gtkimcontextsimple.c

index 42e0109906bd534b211d42eb16e29d714894eb3f..e9270567b197934d94e40885baaeebf341fa4851 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-10-10  Simos Xenitellis  <simos@gnome.org>
+
+       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  <christian@imendio.com>
 
        Bug 555676 – gtk_widget_real_grab_focus assumes toplevel == window
index 967d30c48f5b0bd0654ffdd18f55ef244eaefc35..66a1da15c1c80edf8eda4e8b9a4c0f93bcf58cf3 100644 (file)
@@ -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,