g_free (fname);
fname = g_strdup (modest_local_folder_info_get_type_display_name (type));
}
+ } else {
+ /* Sometimes an special folder is reported by the server as
+ NORMAL, like some versions of Dovecot */
+ if (type == TNY_FOLDER_TYPE_NORMAL ||
+ type == TNY_FOLDER_TYPE_UNKNOWN) {
+ type = modest_tny_folder_guess_folder_type (TNY_FOLDER (instance));
+ }
}
/* note: we cannot reliably get the counts from the tree model, we need
ThreePixbufs *retval = NULL;
- /* MERGE is not needed anymore as the folder now has the correct type jschmid */
- /* We include the MERGE type here because it's used to create
- the local OUTBOX folder */
+ /* Sometimes an special folder is reported by the server as
+ NORMAL, like some versions of Dovecot */
if (type == TNY_FOLDER_TYPE_NORMAL ||
type == TNY_FOLDER_TYPE_UNKNOWN) {
type = modest_tny_folder_guess_folder_type (TNY_FOLDER (instance));
}
free_pixbufs (pixbufs);
-
- return;
}
static void
}
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,
/* 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;
}