ModestWindow *top;
ModestWindowMgr *mgr;
gchar *acc_name;
- gboolean retval = TRUE;
gdk_threads_enter ();
acc_name = (gchar *) user_data;
mgr = modest_runtime_get_window_mgr ();
- /* If Modest is already launched then just ignore this call */
- if (modest_window_mgr_get_current_top (mgr)) {
- retval = FALSE;
- goto end;
- }
-
- top = modest_window_mgr_show_initial_window (mgr);
+ top = modest_window_mgr_get_current_top (mgr);
+ if (!top)
+ top = modest_window_mgr_show_initial_window (mgr);
#ifdef MODEST_TOOLKIT_HILDON2
if (MODEST_IS_ACCOUNTS_WINDOW (top)) {
}
}
#endif
- gdk_threads_leave ();
- end:
+ gdk_threads_leave ();
g_free (acc_name);
return FALSE;
}
}
}
+ /* Do not go backwards */
+ if ((MODEST_IS_MSG_VIEW_WINDOW (current_top) || MODEST_IS_MSG_EDIT_WINDOW (current_top)) &&
+ (MODEST_IS_FOLDER_WINDOW (window) || MODEST_IS_ACCOUNTS_WINDOW (window) ||
+ MODEST_IS_MAILBOXES_WINDOW (window))) {
+ gtk_window_present (GTK_WINDOW (window));
+ return FALSE;
+ }
+
if (MODEST_IS_FOLDER_WINDOW (current_top) && MODEST_IS_FOLDER_WINDOW (window)) {
gtk_window_present (GTK_WINDOW (window));
return FALSE;