[maemo-commits] [maemo-commits] r19451 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Oct 16 13:31:08 EEST 2009
- Previous message: [maemo-commits] r19450 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r19452 - in projects/haf/trunk/gtk+: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2009-10-16 13:31:04 +0300 (Fri, 16 Oct 2009) New Revision: 19451 Modified: projects/haf/trunk/gtk+/ChangeLog projects/haf/trunk/gtk+/gtk/gtkentry.c Log: 2009-10-16 Michael Natterer <mitch at lanedo.com> Fixes: NB#136999 - Cannot paste phonenumber to mobile number field, if number contains space Apply patch from Christian Dywan: * gtk/gtkentry.c: when in TELE input mode, don't fail when invalid characters are pasted, but simply filter them out (so pasting e.g. "+49 12 / 1234" results in pasting "49121234") Modified: projects/haf/trunk/gtk+/ChangeLog =================================================================== --- projects/haf/trunk/gtk+/ChangeLog 2009-10-16 10:26:36 UTC (rev 19450) +++ projects/haf/trunk/gtk+/ChangeLog 2009-10-16 10:31:04 UTC (rev 19451) @@ -1,5 +1,16 @@ 2009-10-16 Michael Natterer <mitch at lanedo.com> + Fixes: NB#136999 - Cannot paste phonenumber to mobile number + field, if number contains space + + Apply patch from Christian Dywan: + + * gtk/gtkentry.c: when in TELE input mode, don't fail when invalid + characters are pasted, but simply filter them out (so pasting + e.g. "+49 12 / 1234" results in pasting "49121234") + +2009-10-16 Michael Natterer <mitch at lanedo.com> + Fixed: NB#120908 - Combo box is not disabled when there are no words stored in the history of Find toolbar Modified: projects/haf/trunk/gtk+/gtk/gtkentry.c =================================================================== --- projects/haf/trunk/gtk+/gtk/gtkentry.c 2009-10-16 10:26:36 UTC (rev 19450) +++ projects/haf/trunk/gtk+/gtk/gtkentry.c 2009-10-16 10:31:04 UTC (rev 19451) @@ -2916,7 +2916,8 @@ gtk_entry_filter_text (GtkEntry *entry, const gchar *str, gint length, - gint nbytes) + gint nbytes, + gchar **filtered) { HildonGtkInputMode input_mode; @@ -2929,6 +2930,28 @@ return FALSE; input_mode = hildon_gtk_entry_get_input_mode (entry); + + if ((input_mode & HILDON_GTK_INPUT_MODE_TELE) != 0) + { + gboolean valid = TRUE; + GString *result = g_string_sized_new (nbytes); + while(length) + { + gunichar chr = g_utf8_get_char (str); + + if (hildon_gtk_input_mode_is_valid_char (input_mode, chr)) + g_string_append_unichar (result, chr); + else + valid = FALSE; + + str = g_utf8_next_char (str); + length--; + } + + *filtered = g_string_free (result, FALSE); + return valid; + } + while(length) { gunichar chr = g_utf8_get_char (str); @@ -2956,6 +2979,9 @@ GtkEntry *entry = GTK_ENTRY (editable); gint index; gint n_chars; +#ifdef MAEMO_CHANGES + gchar *filtered = NULL; +#endif if (new_text_length < 0) new_text_length = strlen (new_text); @@ -2963,11 +2989,20 @@ n_chars = g_utf8_strlen (new_text, new_text_length); #ifdef MAEMO_CHANGES - if (!gtk_entry_filter_text (entry, new_text, n_chars, new_text_length)) + if (!gtk_entry_filter_text (entry, new_text, n_chars, new_text_length, &filtered)) { - g_signal_emit (entry, signals[INVALID_INPUT], 0, - GTK_INVALID_INPUT_MODE_RESTRICTION); - return; + if (filtered) + { + new_text = filtered; + new_text_length = strlen (filtered); + n_chars = g_utf8_strlen (filtered, new_text_length); + } + else + { + g_signal_emit (entry, signals[INVALID_INPUT], 0, + GTK_INVALID_INPUT_MODE_RESTRICTION); + return; + } } #endif /* MAEMO_CHANGES */ @@ -3079,6 +3114,10 @@ emit_changed (entry); g_object_notify (G_OBJECT (editable), "text"); + +#ifdef MAEMO_CHANGES + g_free (filtered); +#endif } static void
- Previous message: [maemo-commits] r19450 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r19452 - in projects/haf/trunk/gtk+: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]