From 55e92022eec28c16d47590666ba24f7b97bea44866aa31c0c4e23b2f5034d0a7 Mon Sep 17 00:00:00 2001 From: Vincent Untz Date: Fri, 28 Oct 2011 19:57:03 +0000 Subject: [PATCH] Accepting request 89706 from home:vuntz:branches:GNOME:Factory Fix bnc#723382 OBS-URL: https://build.opensuse.org/request/show/89706 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk2?expand=0&rev=157 --- gtk2-immodule-fallback.patch | 81 ++++++++++++++++++++++++++++++++++++ gtk2.changes | 8 ++++ gtk2.spec | 3 ++ 3 files changed, 92 insertions(+) create mode 100644 gtk2-immodule-fallback.patch diff --git a/gtk2-immodule-fallback.patch b/gtk2-immodule-fallback.patch new file mode 100644 index 0000000..ed4ae70 --- /dev/null +++ b/gtk2-immodule-fallback.patch @@ -0,0 +1,81 @@ +diff --git a/gtk/gtkimmodule.c b/gtk/gtkimmodule.c +index 593a868..c5bd139 100644 +--- a/gtk/gtkimmodule.c ++++ b/gtk/gtkimmodule.c +@@ -648,6 +648,26 @@ match_locale (const gchar *locale, + return 0; + } + ++static const gchar * ++lookup_immodule (gchar **immodules_list) ++{ ++ while (immodules_list && *immodules_list) ++ { ++ if (g_strcmp0 (*immodules_list, SIMPLE_ID) == 0) ++ return SIMPLE_ID; ++ else ++ { ++ GtkIMModule *module; ++ module = g_hash_table_lookup (contexts_hash, *immodules_list); ++ if (module) ++ return module->contexts[0]->context_id; ++ } ++ immodules_list++; ++ } ++ ++ return NULL; ++} ++ + /** + * _gtk_im_module_get_default_context_id: + * @client_window: a window +@@ -664,7 +684,7 @@ _gtk_im_module_get_default_context_id (GdkWindow *client_window) + const gchar *context_id = NULL; + gint best_goodness = 0; + gint i; +- gchar *tmp_locale, *tmp; ++ gchar *tmp_locale, *tmp, **immodules; + const gchar *envvar; + GdkScreen *screen; + GtkSettings *settings; +@@ -672,11 +692,16 @@ _gtk_im_module_get_default_context_id (GdkWindow *client_window) + if (!contexts_hash) + gtk_im_module_initialize (); + +- envvar = g_getenv ("GTK_IM_MODULE"); +- if (envvar && +- (strcmp (envvar, SIMPLE_ID) == 0 || +- g_hash_table_lookup (contexts_hash, envvar))) +- return envvar; ++ envvar = g_getenv("GTK_IM_MODULE"); ++ if (envvar) ++ { ++ immodules = g_strsplit(envvar, ":", 0); ++ context_id = lookup_immodule(immodules); ++ g_strfreev(immodules); ++ ++ if (context_id) ++ return context_id; ++ } + + /* Check if the certain immodule is set in XSETTINGS. + */ +@@ -687,15 +712,9 @@ _gtk_im_module_get_default_context_id (GdkWindow *client_window) + g_object_get (G_OBJECT (settings), "gtk-im-module", &tmp, NULL); + if (tmp) + { +- if (strcmp (tmp, SIMPLE_ID) == 0) +- context_id = SIMPLE_ID; +- else +- { +- GtkIMModule *module; +- module = g_hash_table_lookup (contexts_hash, tmp); +- if (module) +- context_id = module->contexts[0]->context_id; +- } ++ immodules = g_strsplit(tmp, ":", 0); ++ context_id = lookup_immodule(immodules); ++ g_strfreev(immodules); + g_free (tmp); + + if (context_id) diff --git a/gtk2.changes b/gtk2.changes index 9854f2b..3aef704 100644 --- a/gtk2.changes +++ b/gtk2.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Oct 28 18:33:42 UTC 2011 - vuntz@opensuse.org + +- Add gtk3-immodule-fallback.patch: make it possible to specify + fallback input method modules in the GTK_IM_MODULE environment + variable. This is useful in case a module doesn't exist for both + gtk2 and gtk3. Fix bnc#723382. + ------------------------------------------------------------------- Wed Oct 19 00:08:03 UTC 2011 - kirill.kirillov@gmail.com diff --git a/gtk2.spec b/gtk2.spec index 5fae27a..e18b4c0 100644 --- a/gtk2.spec +++ b/gtk2.spec @@ -38,6 +38,8 @@ Source5: macros.gtk2 Patch0: gtk2-window-dragging.patch # PATCH-FIX-OPENSUSE gtk64.patch sbrabec@novell.com - 64-bit dual install. See also the Fedora patch for a simpler way of doing this. Patch8: gtk64.patch +# PATCH-FEATURE-UPSTREAM gtk2-immodule-fallback.patch bgo#603559 bnc#723382 vuntz@opensuse.org -- Make it possible to specify fallback im modules in GTK_IM_MODULE; useful in case a module doesn't exist for both gtk2 and gtk3 +Patch21: gtk2-immodule-fallback.patch # PATCH-FEATURE-UPSTREAM bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff bnc129753 bgo319484 mfabian@novell.com - Translate the font styles in the GUI Patch22: bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff # PATCH-FIX-OPENSUSE bugzilla-131498-allow-xim-for-all-languages.patch bnc131498 mfabian@novell.com - Allow all languages to be run with the X Input Method @@ -314,6 +316,7 @@ cp -a %{S:2} . # WARNING: This patch does not patch not installed demos and tests. %patch8 -p1 %endif +%patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1