* src/maemo/modest-msg-view-window.c:
authorJose Dapena Paz <jdapena@igalia.com>
Fri, 27 Jul 2007 10:17:59 +0000 (10:17 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Fri, 27 Jul 2007 10:17:59 +0000 (10:17 +0000)
        * Now we use window manager on reading messages. If a message
          is already shown in another window, it closes the window
          and presents the other (fixes NB#64051).

pmo-trunk-r2819

src/maemo/modest-msg-view-window.c

index 9b9e3b9..c02403b 100644 (file)
@@ -1100,9 +1100,22 @@ message_reader (ModestMsgViewWindow *window,
 {
        ModestMailOperation *mail_op = NULL;
        ModestMailOperationTypeOperation op_type;
+       gboolean already_showing = FALSE;
+       ModestWindow *msg_window = NULL;
+       ModestWindowMgr *mgr;
 
        g_return_val_if_fail (path != NULL, FALSE);
 
+       mgr = modest_runtime_get_window_mgr ();
+       already_showing = modest_window_mgr_find_registered_header (mgr, header, &msg_window);
+       if (already_showing && (msg_window != MODEST_WINDOW (window))) {
+               gboolean retval;
+               if (msg_window)
+                       gtk_window_present (GTK_WINDOW (msg_window));
+               g_signal_emit_by_name (G_OBJECT (window), "delete-event", NULL, &retval);
+               return TRUE;
+       }
+
        /* Msg download completed */
        if (tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED) {
                op_type = MODEST_MAIL_OPERATION_TYPE_OPEN;