thread safety
authorTapani Palli <tapani.palli@nokia.com>
Wed, 19 Apr 2006 15:21:18 +0000 (15:21 +0000)
committerTapani Palli <tapani.palli@nokia.com>
Wed, 19 Apr 2006 15:21:18 +0000 (15:21 +0000)
ChangeLog
hildon-widgets/hildon-app.c
hildon-widgets/hildon-banner.c
hildon-widgets/hildon-date-editor.c
hildon-widgets/hildon-number-editor.c
hildon-widgets/hildon-time-editor.c
hildon-widgets/hildon-time-picker.c
hildon-widgets/hildon-window.c

index 185a113..8cb725a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2006-04-19 Tapani Palli <tapani.palli@nokia.com>
 
+       * thread safety (N#24348), fixed timeout and idle callbacks :
+       hildon-widgets/hildon-window.c : hildon_window_escape_timeout()
+       hildon-widgets/hildon-time-picker.c : hildon_time_picker_key_repeat_timeout()
+       hildon-widgets/hildon-number-editor.c : do_mouse_timeout(),hildon_number_editor_select_all()
+       hildon-widgets/hildon-banner.c : hildon_banner_timeout()
+       hildon-widgets/hildon-app.c : hildon_app_escape_timeout()
+       hildon-widgets/hildon-time-editor.c : highlight_callback()
+       hildon-widgets/hildon-date-editor.c : _hildon_date_editor_entry_select_all()
+
+2006-04-19 Tapani Palli <tapani.palli@nokia.com>
+
        * hildon-widgets/hildon-app.c (hildon_app_key_release): send
        correct state for fullscreen, fixes N#26611
 
index 8ee5be9..a35a332 100644 (file)
@@ -783,7 +783,9 @@ hildon_app_escape_timeout(gpointer app)
        HildonAppPrivate *priv;
        GdkEvent *event;
 
-  g_assert(GTK_WIDGET_REALIZED(app));
+       GDK_THREADS_ENTER ();
+
+       g_assert(GTK_WIDGET_REALIZED(app));
 
        priv = HILDON_APP_GET_PRIVATE(app);
 
@@ -796,6 +798,8 @@ hildon_app_escape_timeout(gpointer app)
 
        priv->escape_timeout = 0;
 
+       GDK_THREADS_LEAVE ();
+       
        return FALSE;   
 }
 
index aa32e5f..88cadaf 100644 (file)
@@ -163,6 +163,8 @@ static gboolean hildon_banner_timeout(gpointer data)
    GdkEvent *event;
    gboolean continue_timeout = FALSE;
 
+   GDK_THREADS_ENTER ();
+   
    g_assert(HILDON_IS_BANNER(data));
 
    widget = GTK_WIDGET(data);
@@ -186,6 +188,8 @@ static gboolean hildon_banner_timeout(gpointer data)
 
    g_object_unref(widget);
 
+   GDK_THREADS_LEAVE ();
+   
    return continue_timeout;
 }
 
index 290b8e7..71891c7 100644 (file)
@@ -1424,6 +1424,8 @@ guint hildon_date_editor_get_day(HildonDateEditor *editor)
 static gboolean
 _hildon_date_editor_entry_select_all (GtkWidget *widget)
 {
+       GDK_THREADS_ENTER ();
        gtk_editable_select_region(GTK_EDITABLE(widget), 0, -1);
+       GDK_THREADS_LEAVE ();
        return FALSE;
 }
index 7e9625e..ac54c2a 100644 (file)
@@ -492,12 +492,16 @@ do_mouse_timeout (HildonNumberEditor *editor)
 {
     HildonNumberEditorPrivate *priv;
 
+    GDK_THREADS_ENTER ();
+    
     g_assert(HILDON_IS_NUMBER_EDITOR(editor));
 
     /* Update value based on button held */
     priv = HILDON_NUMBER_EDITOR_GET_PRIVATE(editor);
     change_numbers(editor, priv->button_type);
 
+    GDK_THREADS_LEAVE ();
+
     return TRUE;
 }
 
@@ -913,8 +917,10 @@ hildon_number_editor_set_value (HildonNumberEditor *editor, gint value)
 static gboolean
 hildon_number_editor_select_all (HildonNumberEditorPrivate *priv)
 {   
+    GDK_THREADS_ENTER ();
     gtk_editable_select_region(GTK_EDITABLE(priv->num_entry), 0, -1);
     priv->select_all_idle_id = 0;
+    GDK_THREADS_LEAVE ();
     return FALSE;
 } 
 
index 531dd13..33910f7 100644 (file)
@@ -1343,6 +1343,8 @@ static gboolean highlight_callback(gpointer data)
     HildonTimeEditorPrivate *priv;
     GtkWidget *widget;
 
+    GDK_THREADS_ENTER ();
+    
     g_assert(HILDON_IS_TIME_EDITOR(data));
 
     priv = HILDON_TIME_EDITOR_GET_PRIVATE(data);
@@ -1357,6 +1359,8 @@ static gboolean highlight_callback(gpointer data)
     gtk_editable_select_region(GTK_EDITABLE(widget), 0, -1);
     gtk_widget_grab_focus(widget);
 
+    GDK_THREADS_LEAVE ();
+    
     return FALSE;
 }
 
index 1f8adf5..8ecc5a8 100644 (file)
@@ -778,10 +778,13 @@ hildon_time_picker_event_box_key_release( GtkWidget *widget, GdkEventKey *event,
 static gboolean
 hildon_time_picker_key_repeat_timeout( gpointer tpicker )
 {
-  HildonTimePicker *picker = HILDON_TIME_PICKER(tpicker);
+  HildonTimePicker *picker;
   HildonTimePickerPrivate *priv = NULL;
   gint newval = 0;
 
+  GDK_THREADS_ENTER ();
+
+  picker = HILDON_TIME_PICKER(tpicker);
   g_assert(picker != NULL);
 
   priv = picker->priv;
@@ -801,9 +804,12 @@ hildon_time_picker_key_repeat_timeout( gpointer tpicker )
                                    hildon_time_picker_key_repeat_timeout,
                                    picker);
     priv->start_key_repeat = FALSE;
+
+    GDK_THREADS_LEAVE ();
     return FALSE;
   }
 
+  GDK_THREADS_LEAVE ();
   return TRUE;
 }
 
index bd7dc80..7ea7ff2 100644 (file)
@@ -1481,6 +1481,8 @@ hildon_window_escape_timeout (gpointer data)
     HildonWindowPrivate *priv;
     GdkEvent *event;
 
+    GDK_THREADS_ENTER ();
+    
     priv = HILDON_WINDOW(data)->priv;
 
     /* Send fake event, simulation a situation that user
@@ -1492,6 +1494,8 @@ hildon_window_escape_timeout (gpointer data)
 
     priv->escape_timeout = 0;
 
+    GDK_THREADS_LEAVE ();
+    
     return FALSE;
 }