From 19fa4cbaade772f1a7adbf8ae54ebb1ae2289ce3 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Wed, 12 Sep 2007 08:54:03 +0000 Subject: [PATCH 1/1] * Added some checks that prevent glib criticals in some cases pmo-trunk-r3282 --- src/maemo/modest-msg-edit-window.c | 6 ++++-- src/maemo/modest-msg-view-window.c | 41 +++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/maemo/modest-msg-edit-window.c b/src/maemo/modest-msg-edit-window.c index fb5f411..4fd89c7 100644 --- a/src/maemo/modest-msg-edit-window.c +++ b/src/maemo/modest-msg-edit-window.c @@ -613,11 +613,13 @@ modest_msg_edit_window_disconnect_signals (ModestWindow *window) { ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); - if (g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_PRIMARY), + if (gtk_clipboard_get (GDK_SELECTION_PRIMARY) && + g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler_id)) g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler_id); - if (g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD), + if (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD) && + g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD), priv->default_clipboard_change_handler_id)) g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_CLIPBOARD), priv->default_clipboard_change_handler_id); diff --git a/src/maemo/modest-msg-view-window.c b/src/maemo/modest-msg-view-window.c index eca3043..ce7c4c4 100644 --- a/src/maemo/modest-msg-view-window.c +++ b/src/maemo/modest-msg-view-window.c @@ -541,7 +541,8 @@ modest_msg_view_window_disconnect_signals (ModestWindow *self) priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self); - if (g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_PRIMARY), + if (gtk_clipboard_get (GDK_SELECTION_PRIMARY) && + g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler)) g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler); @@ -556,25 +557,27 @@ modest_msg_view_window_disconnect_signals (ModestWindow *self) g_signal_handler_disconnect (G_OBJECT (modest_runtime_get_account_store ()), priv->account_removed_handler); - if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), - priv->row_changed_handler)) - g_signal_handler_disconnect(G_OBJECT (priv->header_model), - priv->row_changed_handler); - - if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), - priv->row_deleted_handler)) - g_signal_handler_disconnect(G_OBJECT (priv->header_model), + if (priv->header_model) { + if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), + priv->row_changed_handler)) + g_signal_handler_disconnect(G_OBJECT (priv->header_model), + priv->row_changed_handler); + + if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), + priv->row_deleted_handler)) + g_signal_handler_disconnect(G_OBJECT (priv->header_model), priv->row_deleted_handler); - - if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), - priv->row_inserted_handler)) - g_signal_handler_disconnect(G_OBJECT (priv->header_model), - priv->row_inserted_handler); - - if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), - priv->rows_reordered_handler)) - g_signal_handler_disconnect(G_OBJECT (priv->header_model), - priv->rows_reordered_handler); + + if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), + priv->row_inserted_handler)) + g_signal_handler_disconnect(G_OBJECT (priv->header_model), + priv->row_inserted_handler); + + if (g_signal_handler_is_connected(G_OBJECT (priv->header_model), + priv->rows_reordered_handler)) + g_signal_handler_disconnect(G_OBJECT (priv->header_model), + priv->rows_reordered_handler); + } window_mgr = modest_runtime_get_window_mgr(); g_assert(window_mgr != NULL); -- 1.7.9.5