Hello community,

here is the log from the commit of package gtk2 for openSUSE:12.1 checked in at 
2011-10-29 08:00:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1/gtk2 (Old)
 and      /work/SRC/openSUSE:12.1/.gtk2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gtk2", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:12.1/gtk2/gtk2.changes   2011-10-25 16:01:46.000000000 
+0200
+++ /work/SRC/openSUSE:12.1/.gtk2.new/gtk2.changes      2011-10-29 
08:00:27.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Oct 28 18:33:42 UTC 2011 - [email protected]
+
+- 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.
+
+-------------------------------------------------------------------

New:
----
  gtk2-immodule-fallback.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gtk2.spec ++++++
--- /var/tmp/diff_new_pack.oqejPP/_old  2011-10-29 08:00:27.000000000 +0200
+++ /var/tmp/diff_new_pack.oqejPP/_new  2011-10-29 08:00:27.000000000 +0200
@@ -38,6 +38,8 @@
 Patch0:         gtk2-window-dragging.patch
 # PATCH-FIX-OPENSUSE gtk64.patch [email protected] - 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 
[email protected] -- 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 
[email protected] - 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 [email protected] - Allow all languages to be run with the X Input 
Method
@@ -314,6 +316,7 @@
 # WARNING: This patch does not patch not installed demos and tests.
 %patch8 -p1
 %endif
+%patch21 -p1
 %patch22 -p1
 %patch23 -p1
 %patch24 -p1

++++++ gtk2-immodule-fallback.patch ++++++
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)
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to