From 2d2102b5b4cb30ac6731b4b0409a600df37bf830 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Wed, 30 Apr 2008 16:13:47 +0000 Subject: [PATCH] * Removed an invalid g_source_remove * Fixed some calls to modest_platform_animation_banner that were not taking into account that it could return NULL pmo-trunk-r4493 --- src/maemo/modest-address-book.c | 1 - src/maemo/modest-platform.c | 13 +++++++++++-- src/modest-ui-actions.c | 18 ++++++++++-------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/maemo/modest-address-book.c b/src/maemo/modest-address-book.c index 4391355..3120bb3 100644 --- a/src/maemo/modest-address-book.c +++ b/src/maemo/modest-address-book.c @@ -656,7 +656,6 @@ show_check_names_banner (gpointer userdata) static void hide_check_names_banner (GtkWidget **banner, guint banner_timeout) { - g_source_remove (banner_timeout); if (*banner != NULL) { gtk_widget_destroy (*banner); *banner = NULL; diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index 4d61dbd..c4af06c 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -1659,9 +1659,11 @@ modest_platform_information_banner (GtkWidget *parent, const gchar *text) { GtkWidget *banner; - ModestWindowMgr *mgr; + ModestWindowMgr *mgr = modest_runtime_get_window_mgr (); + + if (modest_window_mgr_num_windows (mgr) == 0) + return; - mgr = modest_runtime_get_window_mgr (); banner = hildon_banner_show_information (parent, icon_name, text); modest_window_mgr_register_banner (mgr); @@ -1676,6 +1678,10 @@ modest_platform_information_banner_with_timeout (GtkWidget *parent, gint timeout) { GtkWidget *banner; + + if (modest_window_mgr_num_windows (modest_runtime_get_window_mgr ()) == 0) + return; + banner = hildon_banner_show_information (parent, icon_name, text); hildon_banner_set_timeout(HILDON_BANNER(banner), timeout); } @@ -1689,6 +1695,9 @@ modest_platform_animation_banner (GtkWidget *parent, g_return_val_if_fail (text != NULL, NULL); + if (modest_window_mgr_num_windows (modest_runtime_get_window_mgr ()) == 0) + return NULL; + /* If the parent is not visible then do not show */ if (parent && !GTK_WIDGET_VISIBLE (parent)) return NULL; diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 1cb1fef..fb88cb6 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -848,7 +848,8 @@ open_msg_banner_idle (gpointer userdata) gdk_threads_enter (); banner_info->idle_handler = 0; banner_info->banner = modest_platform_animation_banner (NULL, NULL, banner_info->message); - g_object_ref (banner_info->banner); + if (banner_info) + g_object_ref (banner_info->banner); gdk_threads_leave (); @@ -3778,8 +3779,10 @@ paste_as_attachment_free (gpointer data) { PasteAsAttachmentHelper *helper = (PasteAsAttachmentHelper *) data; - gtk_widget_destroy (helper->banner); - g_object_unref (helper->banner); + if (helper->banner) { + gtk_widget_destroy (helper->banner); + g_object_unref (helper->banner); + } g_free (helper); } @@ -3833,7 +3836,6 @@ modest_ui_actions_on_paste (GtkAction *action, mail_op = modest_mail_operation_new (G_OBJECT (window)); if (helper->banner != NULL) { g_object_ref (G_OBJECT (helper->banner)); - gtk_window_set_modal (GTK_WINDOW (helper->banner), FALSE); gtk_widget_show (GTK_WIDGET (helper->banner)); } @@ -4669,8 +4671,10 @@ move_to_cb (ModestMailOperation *mail_op, } /* Close the "Pasting" information banner */ - gtk_widget_destroy (GTK_WIDGET(helper->banner)); - g_object_unref (helper->banner); + if (helper->banner) { + gtk_widget_destroy (GTK_WIDGET(helper->banner)); + g_object_unref (helper->banner); + } if (helper->reference != NULL) gtk_tree_row_reference_free (helper->reference); g_free (helper); @@ -5039,7 +5043,6 @@ xfer_messages_performer (gboolean canceled, _CS("ckct_nw_pasting")); if (helper->banner != NULL) { g_object_ref (helper->banner); - gtk_window_set_modal (GTK_WINDOW(helper->banner), FALSE); gtk_widget_show (GTK_WIDGET(helper->banner)); } @@ -5097,7 +5100,6 @@ on_move_folder_cb (gboolean canceled, GError *err, GtkWindow *parent_window, _CS("ckct_nw_pasting")); if (helper->banner != NULL) { g_object_ref (helper->banner); - gtk_window_set_modal (GTK_WINDOW(helper->banner), FALSE); gtk_widget_show (GTK_WIDGET(helper->banner)); } /* Clean folder on header view before moving it */ -- 1.7.9.5