* Reverted change 6137 as it was incorrect
[modest] / src / widgets / modest-folder-view.c
index 9f27641..2fe6132 100644 (file)
@@ -713,8 +713,6 @@ icon_cell_data  (GtkTreeViewColumn *column,
        }
 
        free_pixbufs (pixbufs);
-
-       return;
 }
 
 static void
@@ -845,6 +843,13 @@ modest_folder_view_finalize (GObject *obj)
                priv->account_store = NULL;
        }
 
+       if (g_signal_handler_is_connected (modest_runtime_get_account_mgr (), 
+                                          priv->display_name_changed_signal)) {
+               g_signal_handler_disconnect (modest_runtime_get_account_mgr (),
+                                            priv->display_name_changed_signal);
+               priv->display_name_changed_signal = 0;
+       }
+
        if (priv->query) {
                g_object_unref (G_OBJECT (priv->query));
                priv->query = NULL;
@@ -1819,6 +1824,12 @@ drag_and_drop_from_header_view (GtkTreeModel *source_model,
        }
        g_strfreev (uris);
 
+       /* This could happen ig we perform a d&d very quickly over the
+          same row that row could dissapear because message is
+          transferred */
+       if (!TNY_IS_FOLDER (src_folder))
+               goto cleanup;
+
        /* Get the target folder */
        gtk_tree_model_get_iter (dest_model, &dest_iter, dest_row);
        gtk_tree_model_get (dest_model, &dest_iter,
@@ -2011,6 +2022,18 @@ drag_and_drop_from_folder_view (GtkTreeModel     *source_model,
 
        /* Check if the drag is possible */
        if (forbidden || !gtk_tree_path_compare (helper->source_row, dest_row)) {
+               /* Show error */
+               modest_platform_run_information_dialog ((GtkWindow *) win, 
+                                                       _("mail_in_ui_folder_move_target_error"), 
+                                                       FALSE);
+               /* Restore the previous selection */
+               folder = tree_path_to_folder (source_model, helper->source_row);
+               if (folder) {
+                       if (TNY_IS_FOLDER (folder))
+                               modest_folder_view_select_folder (helper->folder_view, 
+                                                                 TNY_FOLDER (folder), FALSE);
+                       g_object_unref (folder);
+               }
                dnd_helper_destroyer (helper);
                return;
        }