#include <tny-simple-list.h>
#include <tny-list.h>
#include <tny-iterator.h>
-#include <tny-maemo-conic-device.h>
#include <tny-error.h>
#include "modest-hildon-includes.h"
#include "modest-defs.h"
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));
}
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));
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:
{
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 ();
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)
{
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 ();
}
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)
{
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 ();
}