* Fixes NB#106248, do not allow launching a mailbox and folders windows at the same...
authorSergio Villar Senin <svillar@igalia.com>
Tue, 17 Mar 2009 16:57:53 +0000 (16:57 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Tue, 17 Mar 2009 16:57:53 +0000 (16:57 +0000)
pmo-trunk-r8093

src/hildon2/modest-hildon2-window-mgr.c

index 2cfd9c3..447d010 100644 (file)
@@ -31,6 +31,7 @@
 #include <hildon/hildon.h>
 #include "modest-hildon2-window-mgr.h"
 #include "modest-msg-edit-window.h"
 #include <hildon/hildon.h>
 #include "modest-hildon2-window-mgr.h"
 #include "modest-msg-edit-window.h"
+#include "modest-mailboxes-window.h"
 #include "modest-header-window.h"
 #include "modest-main-window.h"
 #include "modest-conf.h"
 #include "modest-header-window.h"
 #include "modest-main-window.h"
 #include "modest-conf.h"
@@ -390,11 +391,30 @@ modest_hildon2_window_mgr_register_window (ModestWindowMgr *self,
        }
 
        if (MODEST_IS_FOLDER_WINDOW (current_top) && MODEST_IS_FOLDER_WINDOW (window)) {
        }
 
        if (MODEST_IS_FOLDER_WINDOW (current_top) && MODEST_IS_FOLDER_WINDOW (window)) {
-               g_debug ("Trying to register a second folder window is not allowed");
+               gtk_window_present (GTK_WINDOW (win));
+               return FALSE;
+       }
+
+       if (MODEST_IS_MAILBOXES_WINDOW (current_top) && MODEST_IS_MAILBOXES_WINDOW (window)) {
+               gtk_window_present (GTK_WINDOW (win));
+               return FALSE;
+       }
+
+       /* Mailboxes window can not replace folder windows */
+       if (MODEST_IS_FOLDER_WINDOW (current_top) && MODEST_IS_MAILBOXES_WINDOW (window)) {
                gtk_window_present (GTK_WINDOW (current_top));
                return FALSE;
        }
 
                gtk_window_present (GTK_WINDOW (current_top));
                return FALSE;
        }
 
+       /* Trying to open a folders window and a mailboxes window at
+          the same time from the accounts window is not allowed */
+       if (MODEST_IS_MAILBOXES_WINDOW (current_top) &&
+           MODEST_IS_FOLDER_WINDOW (window) &&
+           MODEST_IS_ACCOUNTS_WINDOW (parent)) {
+               gtk_window_present (GTK_WINDOW (win));
+               return FALSE;
+       }
+
        if (MODEST_IS_HEADER_WINDOW (current_top) && MODEST_IS_HEADER_WINDOW (window)) {
                g_debug ("Trying to register a second header window is not allowed");
                gtk_window_present (GTK_WINDOW (current_top));
        if (MODEST_IS_HEADER_WINDOW (current_top) && MODEST_IS_HEADER_WINDOW (window)) {
                g_debug ("Trying to register a second header window is not allowed");
                gtk_window_present (GTK_WINDOW (current_top));
@@ -408,7 +428,7 @@ modest_hildon2_window_mgr_register_window (ModestWindowMgr *self,
        g_object_ref (window);
        priv->window_list = g_list_prepend (priv->window_list, window);
 
        g_object_ref (window);
        priv->window_list = g_list_prepend (priv->window_list, window);
 
-       nested_msg = MODEST_IS_MSG_VIEW_WINDOW (window) && 
+       nested_msg = MODEST_IS_MSG_VIEW_WINDOW (window) &&
                MODEST_IS_MSG_VIEW_WINDOW (parent);
 
        /* Close views if they're being shown. Nevertheless we must
                MODEST_IS_MSG_VIEW_WINDOW (parent);
 
        /* Close views if they're being shown. Nevertheless we must