From ebaa4f154516d524cd83a5200f1347eda8adb6b9 Mon Sep 17 00:00:00 2001 From: Tapani Palli Date: Wed, 19 Apr 2006 15:21:18 +0000 Subject: [PATCH] thread safety --- ChangeLog | 11 +++++++++++ hildon-widgets/hildon-app.c | 6 +++++- hildon-widgets/hildon-banner.c | 4 ++++ hildon-widgets/hildon-date-editor.c | 2 ++ hildon-widgets/hildon-number-editor.c | 6 ++++++ hildon-widgets/hildon-time-editor.c | 4 ++++ hildon-widgets/hildon-time-picker.c | 8 +++++++- hildon-widgets/hildon-window.c | 4 ++++ 8 files changed, 43 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 185a113..8cb725a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2006-04-19 Tapani Palli + * 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 + * hildon-widgets/hildon-app.c (hildon_app_key_release): send correct state for fullscreen, fixes N#26611 diff --git a/hildon-widgets/hildon-app.c b/hildon-widgets/hildon-app.c index 8ee5be9..a35a332 100644 --- a/hildon-widgets/hildon-app.c +++ b/hildon-widgets/hildon-app.c @@ -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; } diff --git a/hildon-widgets/hildon-banner.c b/hildon-widgets/hildon-banner.c index aa32e5f..88cadaf 100644 --- a/hildon-widgets/hildon-banner.c +++ b/hildon-widgets/hildon-banner.c @@ -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; } diff --git a/hildon-widgets/hildon-date-editor.c b/hildon-widgets/hildon-date-editor.c index 290b8e7..71891c7 100644 --- a/hildon-widgets/hildon-date-editor.c +++ b/hildon-widgets/hildon-date-editor.c @@ -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; } diff --git a/hildon-widgets/hildon-number-editor.c b/hildon-widgets/hildon-number-editor.c index 7e9625e..ac54c2a 100644 --- a/hildon-widgets/hildon-number-editor.c +++ b/hildon-widgets/hildon-number-editor.c @@ -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; } diff --git a/hildon-widgets/hildon-time-editor.c b/hildon-widgets/hildon-time-editor.c index 531dd13..33910f7 100644 --- a/hildon-widgets/hildon-time-editor.c +++ b/hildon-widgets/hildon-time-editor.c @@ -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; } diff --git a/hildon-widgets/hildon-time-picker.c b/hildon-widgets/hildon-time-picker.c index 1f8adf5..8ecc5a8 100644 --- a/hildon-widgets/hildon-time-picker.c +++ b/hildon-widgets/hildon-time-picker.c @@ -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; } diff --git a/hildon-widgets/hildon-window.c b/hildon-widgets/hildon-window.c index bd7dc80..7ea7ff2 100644 --- a/hildon-widgets/hildon-window.c +++ b/hildon-widgets/hildon-window.c @@ -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; } -- 1.7.9.5