2006-10-24 Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
authorMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Tue, 24 Oct 2006 17:11:27 +0000 (17:11 +0000)
committerMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Tue, 24 Oct 2006 17:11:27 +0000 (17:11 +0000)
[0.14.7-1 release]

* configure.ac:
* debian/changelog: Updating.

* hildon-widgets/hildon-time-editor.c: Adding a "skipper" variable
that prevents us from doing validations from within validations. When
skipper == TRUE vallidation step is being skipped. A workaround.
Fixes NB#44610.

ChangeLog
configure.ac
debian/changelog
hildon-widgets/hildon-time-editor.c

index f98e21f..c64b504 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,23 @@
+2006-10-24  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com> 
+
+       [0.14.7-1 release]
+
+       * configure.ac:
+       * debian/changelog: Updating. 
+
+       * hildon-widgets/hildon-time-editor.c: Adding a "skipper" variable
+       that prevents us from doing validations from within validations. When
+       skipper == TRUE vallidation step is being skipped. A workaround.
+       Fixes NB#44610.
+
 2006-10-24  Daniel Elstner  <daniel.kitta@gmail.com>
+
        * hildon-widgets/hildon-find-toolbar.h (search, close,
        invalid_input, history_append): Remove the final user_data
-       parameter from the signal prototypes.  The user_data pointer
-       is a generic feature of GLib signal handling and not supposed
-       to be declared explicitely. (MB#185)
+       parameter from the signal prototypes.  The user_data pointer
+       is a generic feature of GLib signal handling and not supposed
+       to be declared explicitely. (MB#185)
+
 2006-10-23  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com>
 
        * hildon-widgets/hildon-time-editor.c: Removing the extra focus grab,
index 52716ba..1bba97d 100644 (file)
@@ -1,5 +1,5 @@
 AC_INIT(Makefile.am)
-AM_INIT_AUTOMAKE(hildon-libs, 0.14.6)
+AM_INIT_AUTOMAKE(hildon-libs, 0.14.7)
 AM_CONFIG_HEADER(config.h)
 
 AC_CANONICAL_HOST
index 16a8f74..2670fff 100644 (file)
@@ -1,3 +1,14 @@
+hildon-libs (0.14.7-1) unstable; urgency=low
+
+  * Fixes: #NB38598 - Information banners do not resize.
+  * Fixes: #NB41049 - Info banner is not displaying when characters entered in number fields.
+  * Fixes: #NB34193 - Tapping on the close button of the findtoolbar does not close the VKB.
+  * Fixes: #NB43926 - Info banner is not displaying when characters entered in time editor
+  * Fixes: #NB44610 - Applications crash with an internal error note if a value greater than maximum value is entered in the hour field of the Time editor.
+  * Fixes: #MB185 - Several signals wrongly registered, some enums not prepared for introspection
+
+ -- Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>  Tue, 24 Oct 2006 20:00:00 +0300
+
 hildon-libs (0.14.6-1) unstable; urgency=low
 
   * Fixes: #NB42504 - Date input fields can be left empty in startup wizard
index 66fcb80..31bada1 100644 (file)
@@ -164,6 +164,9 @@ struct _HildonTimeEditorPrivate {
     guint      duration_max;         /* duration editor ranges       */
 
     guint      highlight_idle;
+    gboolean   skipper;              /* FIXME (MDK): To prevent us from looping inside the validation events. 
+                                        When set to TRUE further validations (that can happen from-inside other validations)
+                                        are being skipped. Nasty hack to cope with a bad design. */
 };
 
 /***
@@ -490,6 +493,7 @@ static void hildon_time_editor_init(HildonTimeEditor * editor)
     priv->sec_label      = gtk_label_new(NULL);
     priv->frame          = gtk_frame_new(NULL);
     priv->ampm_button    = gtk_button_new();
+    priv->skipper        = FALSE;
 
     icon = gtk_image_new_from_icon_name(ICON_NAME, HILDON_ICON_SIZE_WIDG);
     hbox = gtk_hbox_new(FALSE, 0);
@@ -1435,16 +1439,16 @@ static gboolean highlight_callback(gpointer data)
     GtkWidget *widget;
     gint i;
 
-    GDK_THREADS_ENTER ();
-    
     g_assert(HILDON_IS_TIME_EDITOR(data));
-
     priv = HILDON_TIME_EDITOR_GET_PRIVATE(data);
+    GDK_THREADS_ENTER ();
+    
     widget = priv->error_widget;
     priv->error_widget = NULL;
-    priv->highlight_idle = 0;
 
-    g_assert(GTK_IS_ENTRY(widget));
+    if (GTK_IS_WIDGET(widget) == FALSE)
+            goto Done;
 
     /* Avoid revalidation because it will issue the date_error signal
        twice when there is an empty field. We must block the signal
@@ -1459,6 +1463,8 @@ static gboolean highlight_callback(gpointer data)
       g_signal_handlers_unblock_by_func(priv->entries[i],
                                        (gpointer) hildon_time_editor_entry_focusout, data);
 
+Done:
+    priv->highlight_idle = 0;
     GDK_THREADS_LEAVE ();
 
     return FALSE;
@@ -1477,8 +1483,9 @@ hildon_time_editor_validate (HildonTimeEditor *editor, gboolean allow_intermedia
     priv = HILDON_TIME_EDITOR_GET_PRIVATE(editor);
 
     /* if there is already an error we do nothing until it will be managed by the idle */
-    if (priv->highlight_idle == 0)
+    if (priv->highlight_idle == 0 && priv->skipper == FALSE)
       {
+        priv->skipper = TRUE;
         error_message = g_string_new(NULL);
         hildon_time_editor_real_validate(editor, 
                                          allow_intermediate, error_message);
@@ -1487,10 +1494,11 @@ hildon_time_editor_validate (HildonTimeEditor *editor, gboolean allow_intermedia
           {
             hildon_banner_show_information(priv->error_widget, NULL,
                                            error_message->str);
-            
+           
             priv->highlight_idle = g_idle_add(highlight_callback, editor);
           }
 
+        priv->skipper = FALSE;
         g_string_free(error_message, TRUE);
       }
 }