* Fixes NB#86757 do not allow multiple forwardings
[modest] / src / widgets / modest-header-view.c
index 72da5b9..4151282 100644 (file)
@@ -380,8 +380,10 @@ modest_header_view_set_columns (ModestHeaderView *self, const GList *columns, Tn
        g_object_set_data (G_OBJECT (renderer_recpt_box), "date-renderer", renderer_compact_date_or_status);
 
        g_object_set (G_OBJECT (renderer_subject_box), "yalign", 1.0, NULL);
+#ifdef MODEST_PLATFORM_MAEMO
        gtk_cell_renderer_set_fixed_size (renderer_subject_box, -1, 32);
        gtk_cell_renderer_set_fixed_size (renderer_recpt_box, -1, 32);
+#endif
        g_object_set (G_OBJECT (renderer_recpt_box), "yalign", 0.0, NULL);
        g_object_set(G_OBJECT(renderer_header),
                     "ellipsize", PANGO_ELLIPSIZE_END,
@@ -403,9 +405,15 @@ modest_header_view_set_columns (ModestHeaderView *self, const GList *columns, Tn
        g_object_set (G_OBJECT (renderer_attach),
                      "yalign", 0.0, NULL);
 
+#ifdef MODEST_PLATFORM_MAEMO
        gtk_cell_renderer_set_fixed_size (renderer_attach, 32, 26);
        gtk_cell_renderer_set_fixed_size (renderer_priority, 32, 26);
        gtk_cell_renderer_set_fixed_size (renderer_compact_header, -1, 64);
+#else
+       gtk_cell_renderer_set_fixed_size (renderer_attach, 16, 16);
+       gtk_cell_renderer_set_fixed_size (renderer_priority, 16, 16);
+       /* gtk_cell_renderer_set_fixed_size (renderer_compact_header, -1, 64); */
+#endif
        
        remove_all_columns (self);
 
@@ -981,6 +989,9 @@ set_folder_intern_get_headers_async_cb (TnyFolder *folder,
        self = MODEST_HEADER_VIEW (user_data);
        priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
 
+       if (cancelled || err)
+               return;
+
        /* Add IDLE observer (monitor) and another folder observer for
           new messages (self) */
        g_mutex_lock (priv->observers_lock);
@@ -1225,11 +1236,11 @@ refresh_folder_error_handler (ModestMailOperation *mail_op,
 void
 modest_header_view_set_folder (ModestHeaderView *self, 
                               TnyFolder *folder,
+                              gboolean refresh,
                               RefreshAsyncUserCallback callback,
                               gpointer user_data)
 {
        ModestHeaderViewPrivate *priv;
-       SetFolderHelper *info;
        ModestWindow *main_win;
        
        g_return_if_fail (self);
@@ -1257,8 +1268,9 @@ modest_header_view_set_folder (ModestHeaderView *self,
        }
 
        if (folder) {
-               ModestMailOperation *mail_op = NULL;
                GtkTreeSelection *selection;
+               SetFolderHelper *info;
+               ModestMailOperation *mail_op = NULL;
 
                /* Set folder in the model */
                modest_header_view_set_folder_intern (self, folder);
@@ -1279,7 +1291,7 @@ modest_header_view_set_folder (ModestHeaderView *self,
                               0, TRUE, NULL);
 
                /* create the helper */
-               info = g_malloc0 (sizeof(SetFolderHelper));
+               info = g_malloc0 (sizeof (SetFolderHelper));
                info->header_view = g_object_ref (self);
                info->cb = callback;
                info->user_data = user_data;
@@ -1288,15 +1300,18 @@ modest_header_view_set_folder (ModestHeaderView *self,
                mail_op = modest_mail_operation_new_with_error_handling (G_OBJECT(main_win),
                                                                         refresh_folder_error_handler,
                                                                         NULL, NULL);
-               modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
-                                                mail_op);
-
-               /* Refresh the folder asynchronously */
-               modest_mail_operation_refresh_folder (mail_op,
-                                                     folder,
-                                                     folder_refreshed_cb,
-                                                     info);
-
+               if (refresh) {                  
+                       modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
+                                                        mail_op);
+                       
+                       /* Refresh the folder asynchronously */
+                       modest_mail_operation_refresh_folder (mail_op,
+                                                             folder,
+                                                             folder_refreshed_cb,
+                                                             info);
+               } else {
+                       folder_refreshed_cb (mail_op, folder, info);
+               }
                /* Free */
                g_object_unref (mail_op);
        } else {
@@ -1803,7 +1818,7 @@ on_button_press_event(GtkWidget * self, GdkEventButton * event, gpointer userdat
        /* If it's already opened then do not let the button-press
           event go on because it'll perform a message open because
           we're clicking on to an already selected header */
-       return (already_opened) ? TRUE : FALSE;
+       return FALSE;
 }
 
 static void
@@ -1890,7 +1905,7 @@ modest_header_view_clear (ModestHeaderView *self)
 {
        g_return_if_fail (self && MODEST_IS_HEADER_VIEW(self));
        
-       modest_header_view_set_folder (self, NULL, NULL, NULL);
+       modest_header_view_set_folder (self, NULL, FALSE, NULL, NULL);
 }
 
 void