X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-main-window.c;h=69fc7d4f355a61eead653553ab8de4f8f177d5c6;hp=86a6570af892c7d84e77a936a8b9133e5a80f455;hb=4dc1719b3df5a026a74679d7ba6c7dc1fa05ae4d;hpb=2042dd916b3223f868982aec6c19a8147c33e243 diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c index 86a6570..69fc7d4 100644 --- a/src/maemo/modest-main-window.c +++ b/src/maemo/modest-main-window.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include "modest-hildon-includes.h" #include "modest-defs.h" @@ -1147,14 +1146,6 @@ modest_main_window_on_show (GtkWidget *self, gpointer user_data) gtk_widget_show_all(GTK_WIDGET(self)); modest_ui_actions_on_accounts (NULL, MODEST_WINDOW(self)); } else { - GSList *accounts; - GtkAction *send_receive_all; - ModestWindowPrivate *parent_priv = MODEST_WINDOW_GET_PRIVATE (self); - accounts = modest_account_mgr_account_names (modest_runtime_get_account_mgr (), TRUE); - send_receive_all = gtk_ui_manager_get_action (parent_priv->ui_manager, - "/MenuBar/ToolsMenu/ToolsSendReceiveMainMenu/ToolsSendReceiveAllMenu"); - gtk_action_set_visible (send_receive_all, g_slist_length (accounts) > 0); - modest_account_mgr_free_account_names (accounts); update_menus (MODEST_MAIN_WINDOW (self)); } @@ -1451,10 +1442,18 @@ modest_main_window_set_style (ModestMainWindow *self, g_list_free (rows); /* Let header view grab the focus if it's being shown */ - if (priv->contents_style == MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS) + if (priv->contents_style == MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS) { gtk_widget_grab_focus (GTK_WIDGET (priv->header_view)); - else - gtk_widget_grab_focus (GTK_WIDGET (priv->contents_widget)); + } else { + if (priv->style == MODEST_MAIN_WINDOW_STYLE_SPLIT) + gtk_widget_grab_focus (GTK_WIDGET (priv->folder_view)); + else + gtk_widget_grab_focus (GTK_WIDGET (priv->contents_widget)); + } + + /* Check dimming rules */ + modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (self)); + modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (self)); /* Show changes */ gtk_widget_show_all (GTK_WIDGET (priv->main_vbox)); @@ -2206,6 +2205,8 @@ modest_main_window_set_contents_style (ModestMainWindow *self, wrap_in_scrolled_window (priv->contents_widget, GTK_WIDGET (priv->header_view)); modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget), TRUE); + if (priv->style == MODEST_MAIN_WINDOW_STYLE_SIMPLE) + gtk_widget_grab_focus (GTK_WIDGET (priv->header_view)); break; case MODEST_MAIN_WINDOW_CONTENTS_STYLE_DETAILS: { @@ -2225,12 +2226,16 @@ modest_main_window_set_contents_style (ModestMainWindow *self, modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget), FALSE); } + if (priv->style == MODEST_MAIN_WINDOW_STYLE_SIMPLE) + gtk_widget_grab_focus (GTK_WIDGET (priv->details_widget)); break; } case MODEST_MAIN_WINDOW_CONTENTS_STYLE_EMPTY: wrap_in_scrolled_window (priv->contents_widget, GTK_WIDGET (priv->empty_view)); modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->contents_widget), FALSE); + if (priv->style == MODEST_MAIN_WINDOW_STYLE_SIMPLE) + gtk_widget_grab_focus (GTK_WIDGET (priv->empty_view)); break; default: g_return_if_reached (); @@ -2894,6 +2899,17 @@ modest_main_window_on_msg_view_window_msg_changed (ModestMsgViewWindow *view_win return TRUE; } +static void +updating_banner_destroyed (gpointer data, + GObject *where_the_object_was) +{ + ModestMainWindowPrivate *priv = NULL; + + priv = MODEST_MAIN_WINDOW_GET_PRIVATE (data); + + priv->updating_banner = NULL; +} + static gboolean show_updating_banner (gpointer user_data) { @@ -2908,6 +2924,13 @@ show_updating_banner (gpointer user_data) priv->updating_banner = modest_platform_animation_banner (GTK_WIDGET (user_data), NULL, _CS ("ckdg_pb_updating")); + + /* We need this because banners in Maemo could be + destroyed by dialogs so we need to properly update + our reference to it */ + g_object_weak_ref (G_OBJECT (priv->updating_banner), + updating_banner_destroyed, + user_data); gdk_threads_leave (); } @@ -3033,6 +3056,17 @@ on_window_destroy (GtkObject *widget, remove_banners (MODEST_MAIN_WINDOW (widget)); } +static void +retrieving_banner_destroyed (gpointer data, + GObject *where_the_object_was) +{ + ModestMainWindowPrivate *priv = NULL; + + priv = MODEST_MAIN_WINDOW_GET_PRIVATE (data); + + priv->retrieving_banner = NULL; +} + static gboolean show_retrieving_banner (gpointer user_data) { @@ -3047,6 +3081,13 @@ show_retrieving_banner (gpointer user_data) priv->retrieving_banner = modest_platform_animation_banner (GTK_WIDGET (user_data), NULL, _("mcen_ib_getting_items")); + + /* We need this because banners in Maemo could be + destroyed by dialogs so we need to properly update + our reference to it */ + g_object_weak_ref (G_OBJECT (priv->retrieving_banner), + retrieving_banner_destroyed, + user_data); gdk_threads_leave (); }