[maemo-commits] [maemo-commits] r18810 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jul 1 13:06:25 EEST 2009
Author: kris
Date: 2009-07-01 13:06:21 +0300 (Wed, 01 Jul 2009)
New Revision: 18810

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkimmulticontext.c
Log:
2006-07-01  Kristian Rietveld  <kris at lanedo.com>

	Addresses: NB#106177 - No API to enable alphanumeric input mode
	with numeric mode as default

	* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave),
	(gtk_im_multicontext_notify),
	(gtk_im_multicontext_slave_input_mode_changed_cb): also sync
	hildon-input-default property between slave and real contexts.



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-06-30 13:30:20 UTC (rev 18809)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-07-01 10:06:21 UTC (rev 18810)
@@ -1,3 +1,13 @@
+2006-07-01  Kristian Rietveld  <kris at lanedo.com>
+
+	Addresses: NB#106177 - No API to enable alphanumeric input mode
+	with numeric mode as default
+
+	* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave),
+	(gtk_im_multicontext_notify),
+	(gtk_im_multicontext_slave_input_mode_changed_cb): also sync
+	hildon-input-default property between slave and real contexts.
+
 2009-06-25  Michael Natterer  <mitch at lanedo.com>
 
 	Fixed: NB#108333 - Patch for GtkFrame to support new group title design

Modified: projects/haf/trunk/gtk+/gtk/gtkimmulticontext.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkimmulticontext.c	2009-06-30 13:30:20 UTC (rev 18809)
+++ projects/haf/trunk/gtk+/gtk/gtkimmulticontext.c	2009-07-01 10:06:21 UTC (rev 18810)
@@ -103,6 +103,9 @@
 static void     gtk_im_multicontext_slave_input_mode_changed_cb (GtkIMContext                   *slave,
                                                                  GParamSpec                     *pspec,
                                                                  GtkIMMulticontext              *multicontext);
+static void     gtk_im_multicontext_slave_input_default_changed_cb (GtkIMContext                   *slave,
+                                                                    GParamSpec                     *pspec,
+                                                                    GtkIMMulticontext              *multicontext);
 
 static GtkIMContext *gtk_im_multicontext_get_slave              (GtkIMMulticontext              *multicontext);
 #endif /* MAEMO_CHANGES */
@@ -253,6 +256,7 @@
   gboolean need_preedit_changed = FALSE;
 #ifdef MAEMO_CHANGES
   HildonGtkInputMode input_mode;
+  HildonGtkInputMode input_default;
 #endif /* MAEMO_CHANGES */
   
   if (multicontext->slave)
@@ -338,9 +342,17 @@
       g_signal_connect (multicontext->slave, "notify::hildon-input-mode",
                         G_CALLBACK (gtk_im_multicontext_slave_input_mode_changed_cb),
                         multicontext);
+      g_signal_connect (multicontext->slave, "notify::hildon-input-default",
+                        G_CALLBACK (gtk_im_multicontext_slave_input_default_changed_cb),
+                        multicontext);
 
       g_object_get(multicontext, "hildon-input-mode", &input_mode, NULL);
       g_object_set(multicontext->slave, "hildon-input-mode", input_mode, NULL);
+
+      g_object_get(multicontext, "hildon-input-default",
+                   &input_default, NULL);
+      g_object_set(multicontext->slave, "hildon-input-default",
+                   input_default, NULL);
 #endif /* MAEMO_CHANGES */
       
       if (!priv->use_preedit)	/* Default is TRUE */
@@ -628,6 +640,20 @@
         g_object_set (multicontext->slave,
 		      "hildon-input-mode", input_mode_multi,
 		      NULL);
+
+      /* and the same for hildon-input-default: */
+      g_object_get (multicontext->slave,
+		    "hildon-input-default", &input_mode_slave,
+		    NULL);
+      g_object_get (multicontext,
+		    "hildon-input-default", &input_mode_multi,
+		    NULL);
+
+      /* don't change without comparing, or we'll get to infinite loop */
+      if (input_mode_slave != input_mode_multi)
+        g_object_set (multicontext->slave,
+		      "hildon-input-default", input_mode_multi,
+		      NULL);
     }
 }
 #endif /* MAEMO_CHANGES */
@@ -721,6 +747,23 @@
   if (input_mode_slave != input_mode_multi)
     g_object_set (multicontext, "hildon-input-mode", input_mode_slave, NULL);
 }
+
+void
+gtk_im_multicontext_slave_input_default_changed_cb (GtkIMContext      *slave,
+                                                    GParamSpec        *pspec,
+                                                    GtkIMMulticontext *multicontext)
+{
+  HildonGtkInputMode input_default_slave, input_default_multi;
+
+  g_object_get (slave, "hildon-input-default", &input_default_slave, NULL);
+  g_object_get (multicontext, "hildon-input-default",
+                &input_default_multi, NULL);
+
+  /* don't change without comparing, or we'll get to infinite loop */
+  if (input_default_slave != input_default_multi)
+    g_object_set (multicontext, "hildon-input-default",
+                  input_default_slave, NULL);
+}
 #endif /* MAEMO_CHANGES */
 
 static void

More information about the maemo-commits mailing list