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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Nov 27 12:35:06 EET 2009
Author: kalikiana
Date: 2009-11-27 12:35:00 +0200 (Fri, 27 Nov 2009)
New Revision: 19526

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkentry.c
Log:
2009-11-27  Christian Dywan  <christian at lanedo.com>

	Fixes: NB#146722 - [Arabic] Contacts doesnt support calls if the number
	is in Hindu-Arabic in Rover

	* gtk/gtkentry.c (hildon_gtk_input_mode_is_valid_char),
	(gtk_entry_filter_text): Convert unicode numbers outside of ASCII to ASCII
	and don't regard them as valid.

Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-11-27 10:34:46 UTC (rev 19525)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-11-27 10:35:00 UTC (rev 19526)
@@ -1,3 +1,12 @@
+2009-11-27  Christian Dywan  <christian at lanedo.com>
+
+	Fixes: NB#146722 - [Arabic] Contacts doesnt support calls if the number
+	is in Hindu-Arabic in Rover
+
+	* gtk/gtkentry.c (hildon_gtk_input_mode_is_valid_char),
+	(gtk_entry_filter_text): Convert unicode numbers outside of ASCII to ASCII
+	and don't regard them as valid.
+
 2009-11-18  Christian Dywan  <christian at lanedo.com>
 
 	* gtk/Makefile.am:

Modified: projects/haf/trunk/gtk+/gtk/gtkentry.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkentry.c	2009-11-27 10:34:46 UTC (rev 19525)
+++ projects/haf/trunk/gtk+/gtk/gtkentry.c	2009-11-27 10:35:00 UTC (rev 19526)
@@ -2923,8 +2923,9 @@
  * design might change, so for now we'll keep this here.
  */
 static gboolean
-hildon_gtk_input_mode_is_valid_char (HildonGtkInputMode mode,
-                                     gunichar           chr)
+hildon_gtk_input_mode_is_valid_char (HildonGtkInputMode  mode,
+                                     gunichar            chr,
+                                     gunichar           *chr_)
 {
   static const char *tele_chars_ascii = "p#*+";
 
@@ -2940,7 +2941,12 @@
       if ((mode & (HILDON_GTK_INPUT_MODE_NUMERIC |
                    HILDON_GTK_INPUT_MODE_HEXA |
                    HILDON_GTK_INPUT_MODE_TELE)) != 0)
-        return TRUE;
+        {
+          gchar* number = g_strdup_printf ("%d", g_unichar_digit_value (chr));
+          *chr_ = g_utf8_get_char (number);
+          g_free (number);
+          return chr == *chr_;
+        }
     }
   else
     {
@@ -2984,13 +2990,17 @@
     {
       gboolean valid = TRUE;
       GString *result = g_string_sized_new (nbytes);
+
       while(length)
         {
           gunichar chr = g_utf8_get_char (str);
+          gunichar chr_ = chr;
+          gboolean valid_char;
 
-          if (hildon_gtk_input_mode_is_valid_char (input_mode, chr))
-            g_string_append_unichar (result, chr);
-          else
+          valid_char = hildon_gtk_input_mode_is_valid_char (input_mode, chr, &chr_);
+          if (valid_char || chr != chr_)
+            g_string_append_unichar (result, chr_);
+          if (!valid_char)
             valid = FALSE;
 
           str = g_utf8_next_char (str);
@@ -3005,7 +3015,7 @@
     {
       gunichar chr = g_utf8_get_char (str);
 
-      if (!hildon_gtk_input_mode_is_valid_char (input_mode, chr))
+      if (!hildon_gtk_input_mode_is_valid_char (input_mode, chr, &chr))
         return FALSE;
 
       str = g_utf8_next_char (str);

More information about the maemo-commits mailing list