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
This commit is contained in:
parent
9de2e2ca80
commit
55e92022ee
81
gtk2-immodule-fallback.patch
Normal file
81
gtk2-immodule-fallback.patch
Normal file
@ -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)
|
@ -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
|
Wed Oct 19 00:08:03 UTC 2011 - kirill.kirillov@gmail.com
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ Source5: macros.gtk2
|
|||||||
Patch0: gtk2-window-dragging.patch
|
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.
|
# 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
|
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
|
# 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
|
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
|
# 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.
|
# WARNING: This patch does not patch not installed demos and tests.
|
||||||
%patch8 -p1
|
%patch8 -p1
|
||||||
%endif
|
%endif
|
||||||
|
%patch21 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user