#include "modest-tny-msg.h"
#include "modest-tny-account.h"
#include <tny-merge-folder.h>
+#include <modest-account-mgr-helpers.h>
/* 'private'/'protected' functions */
static void modest_hildon2_window_mgr_class_init (ModestHildon2WindowMgrClass *klass);
HildonWindowStack *stack;
gboolean nested_msg = FALSE;
ModestWindow *current_top;
+ const gchar *acc_name;
g_return_val_if_fail (MODEST_IS_HILDON2_WINDOW_MGR (self), FALSE);
g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
*handler_id = g_signal_connect (window, "delete-event", G_CALLBACK (on_window_destroy), self);
g_hash_table_insert (priv->destroy_handlers, window, handler_id);
+ if (!MODEST_IS_MSG_EDIT_WINDOW (window) &&
+ !MODEST_IS_ACCOUNTS_WINDOW (window)) {
+ acc_name = modest_window_get_active_account (window);
+
+ if (acc_name) {
+ modest_platform_remove_new_mail_notifications (FALSE, acc_name);
+ modest_account_mgr_set_has_new_mails (modest_runtime_get_account_mgr (),
+ acc_name,
+ FALSE);
+ }
+ }
+
/* Show toolbar always */
- modest_window_show_toolbar (window, TRUE);
+ if (MODEST_IS_MSG_EDIT_WINDOW (window)) {
+ gboolean show_toolbar;
+ show_toolbar = modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_EDIT_WINDOW_SHOW_TOOLBAR, NULL);
+ modest_window_show_toolbar (window, show_toolbar);
+ } else {
+ modest_window_show_toolbar (window, TRUE);
+ }
return TRUE;
fail:
gtk_window_set_modal (window, TRUE);
gtk_window_set_transient_for (window, parent);
gtk_window_set_destroy_with_parent (window, TRUE);
+
+ if (!gtk_window_has_toplevel_focus (window)) {
+ GList *toplevels, *node;
+
+ toplevels = gtk_window_list_toplevels ();
+ for (node = toplevels; node != NULL; node = g_list_next (node)) {
+ if (gtk_window_has_toplevel_focus (GTK_WINDOW (node->data))) {
+ if (GTK_IS_DIALOG (node->data)) {
+ gtk_window_set_transient_for (window, GTK_WINDOW (node->data));
+ }
+ break;
+ }
+ }
+ }
}
static void
/* Stop blinking if the screen becomes on */
if (priv->display_state == OSSO_DISPLAY_ON)
- modest_platform_remove_new_mail_notifications (TRUE);
+ modest_platform_remove_new_mail_notifications (TRUE, NULL);
}
static gboolean