gtk+ r21579 - in branches/gtk-2-14: . gtk
- From: simos svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21579 - in branches/gtk-2-14: . gtk
- Date: Thu, 2 Oct 2008 22:34:07 +0000 (UTC)
Author: simos
Date: Thu Oct 2 22:34:07 2008
New Revision: 21579
URL: http://svn.gnome.org/viewvc/gtk+?rev=21579&view=rev
Log:
Fixed Bug 554506 â combining diacritics broken, became deadkeys
Modified:
branches/gtk-2-14/ChangeLog
branches/gtk-2-14/gtk/gtkimcontextsimple.c
Modified: branches/gtk-2-14/gtk/gtkimcontextsimple.c
==============================================================================
--- branches/gtk-2-14/gtk/gtkimcontextsimple.c (original)
+++ branches/gtk-2-14/gtk/gtkimcontextsimple.c Thu Oct 2 22:34:07 2008
@@ -407,11 +407,19 @@
return FALSE;
}
-/* When updating the table of the compose sequences, also update here.
+/* 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.
*/
#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)
+ ((g_unichar_type (gdk_keyval_to_unicode (k)) == G_UNICODE_NON_SPACING_MARK) && \
+ ((k) < 0x1000000)))
static gboolean
check_algorithmically (GtkIMContextSimple *context_simple,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]