From b5d5d8ff83c76014716ec720aed759f00e7e9eb2 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Tue, 28 Aug 2007 06:25:27 +0000 Subject: [PATCH] * check whether folder_view actually exists before calling it; this fixes some GLib-Criticals. pmo-trunk-r3100 --- src/maemo/modest-main-window.c | 36 +++++++++++++++++++----------------- src/modest-ui-actions.c | 2 ++ src/modest-ui-dimming-rules.c | 7 +++++-- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c index 283cdce..346975d 100644 --- a/src/maemo/modest-main-window.c +++ b/src/maemo/modest-main-window.c @@ -1888,20 +1888,22 @@ modest_main_window_set_contents_style (ModestMainWindow *self, break; case MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS: { - TnyFolderStore *selected_folderstore = - modest_folder_view_get_selected (priv->folder_view); - if (TNY_IS_ACCOUNT (selected_folderstore)) { - priv->details_widget = create_details_widget (GTK_WIDGET (self), + /* if we're started without main win, there may not be a folder + * view. this fixes a GLib-Critical */ + if (priv->folder_view) { + TnyFolderStore *selected_folderstore = + modest_folder_view_get_selected (priv->folder_view); + if (TNY_IS_ACCOUNT (selected_folderstore)) { + priv->details_widget = create_details_widget (GTK_WIDGET (self), TNY_ACCOUNT (selected_folderstore)); - - wrap_in_scrolled_window (priv->contents_widget, - priv->details_widget); + + wrap_in_scrolled_window (priv->contents_widget, + priv->details_widget); + } + g_object_unref (selected_folderstore); + modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget), + FALSE); } - g_object_unref (selected_folderstore); - modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget), - FALSE); - - break; } case MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY: @@ -1937,7 +1939,7 @@ on_configuration_key_changed (ModestConf* conf, ModestMainWindow *self) { ModestMainWindowPrivate *priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self); - TnyAccount *account; + TnyAccount *account = NULL; if (!key || priv->notification_id != id || @@ -1946,10 +1948,10 @@ on_configuration_key_changed (ModestConf* conf, if (priv->contents_style != MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS) return; - - account = (TnyAccount *) modest_folder_view_get_selected (priv->folder_view); - if (TNY_IS_ACCOUNT (account) && - !strcmp (tny_account_get_id (account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) { + if (priv->folder_view) + account = (TnyAccount *) modest_folder_view_get_selected (priv->folder_view); + if (account && TNY_IS_ACCOUNT (account) && + strcmp (tny_account_get_id (account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID) == 0) { GList *children; GtkLabel *label; const gchar *device_name; diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index f9da90a..066368d 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -1647,6 +1647,8 @@ modest_do_refresh_current_folder(ModestWindow *win) folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW (win), MODEST_WIDGET_TYPE_FOLDER_VIEW); + if (!folder_view) + return; folder_store = modest_folder_view_get_selected (MODEST_FOLDER_VIEW (folder_view)); diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index a6f30ea..33380e5 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -1544,6 +1544,9 @@ _selected_folder_is_MMC_or_POP_root (ModestMainWindow *win) folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win), MODEST_WIDGET_TYPE_FOLDER_VIEW); + if (!folder_view) + return FALSE; + /* Get selected folder as parent of new folder to create */ parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view)); if (!parent_folder) @@ -1646,8 +1649,8 @@ _folder_view_has_focus (ModestWindow *win) MODEST_WIDGET_TYPE_FOLDER_VIEW); if (!folder_view) return FALSE; - - if(gtk_widget_is_focus(folder_view)) + + if (gtk_widget_is_focus(folder_view)) return TRUE; return FALSE; -- 1.7.9.5