summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Cardona <remi@gentoo.org>2008-10-01 21:49:03 +0000
committerRémi Cardona <remi@gentoo.org>2008-10-01 21:49:03 +0000
commitc16cca5be62610bb78d4ae8bfcc1ad8bb9f8a1b9 (patch)
tree8701ca98995d242b96e2326e0a0024355689bc41 /x11-libs/gtk+/files
parentAutomated update of use.local.desc (diff)
downloadgentoo-2-c16cca5be62610bb78d4ae8bfcc1ad8bb9f8a1b9.tar.gz
gentoo-2-c16cca5be62610bb78d4ae8bfcc1ad8bb9f8a1b9.tar.bz2
gentoo-2-c16cca5be62610bb78d4ae8bfcc1ad8bb9f8a1b9.zip
x11-libs/gtk+: fix broken diacritics on intl keyboards (see gnome bug #554192)
(Portage version: 2.2_rc11/cvs/Linux 2.6.25-gentoo-r3 i686)
Diffstat (limited to 'x11-libs/gtk+/files')
-rw-r--r--x11-libs/gtk+/files/gtk+-2.14.3-fix-combining-broken-diacritics.patch26
-rw-r--r--x11-libs/gtk+/files/gtk+-2.14.3-reorder-compose-key-table-order.patch20
2 files changed, 46 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-2.14.3-fix-combining-broken-diacritics.patch b/x11-libs/gtk+/files/gtk+-2.14.3-fix-combining-broken-diacritics.patch
new file mode 100644
index 000000000000..40db2ef1957d
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.14.3-fix-combining-broken-diacritics.patch
@@ -0,0 +1,26 @@
+Index: gtk/gtkimcontextsimple.c
+===================================================================
+--- gtk/gtkimcontextsimple.c (revision 21556)
++++ gtk/gtkimcontextsimple.c (revision 21557)
+@@ -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,
diff --git a/x11-libs/gtk+/files/gtk+-2.14.3-reorder-compose-key-table-order.patch b/x11-libs/gtk+/files/gtk+-2.14.3-reorder-compose-key-table-order.patch
new file mode 100644
index 000000000000..dd098e9cc52b
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.14.3-reorder-compose-key-table-order.patch
@@ -0,0 +1,20 @@
+Index: gtk/gtkimcontextsimple.c
+===================================================================
+--- gtk/gtkimcontextsimple.c (revision 21564)
++++ gtk/gtkimcontextsimple.c (working copy)
+@@ -933,12 +933,12 @@
+ return TRUE;
+ tmp_list = tmp_list->next;
+ }
+-
+- if (check_algorithmically (context_simple, n_compose))
+- return TRUE;
+
+ if (check_compact_table (context_simple, &gtk_compose_table_compact, n_compose))
+ return TRUE;
++
++ if (check_algorithmically (context_simple, n_compose))
++ return TRUE;
+ }
+
+ /* The current compose_buffer doesn't match anything */