diff options
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/component-factory.c | 12 | ||||
-rw-r--r-- | mail/folder-browser.c | 13 |
3 files changed, 27 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index d106c69d5e..8707d82ff7 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2001-06-28 Jeffrey Stedfast <fejj@ximian.com> + + * component-factory.c (destination_folder_handle_drop): Since we + have an exception variable, we might as well use it when getting + folders too. + + * folder-browser.c (message_list_drag_data_recieved): Call + gtk_drag_finish. + 2001-06-28 Dan Winship <danw@ximian.com> * mail-tools.c (mail_tool_uri_to_folder): After finding a folder, diff --git a/mail/component-factory.c b/mail/component-factory.c index fc8ba49e46..f568734921 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -396,9 +396,11 @@ destination_folder_handle_drop (EvolutionShellComponentDndDestinationFolder *fol g_free (url); break; case ACCEPTED_DND_TYPE_MESSAGE_RFC822: - source = mail_tool_uri_to_folder (physical_uri, NULL); - if (!source) + source = mail_tool_uri_to_folder (physical_uri, &ex); + if (!source) { + camel_exception_clear (&ex); return FALSE; + } /* write the message(s) out to a CamelStream so we can use it */ stream = camel_stream_mem_new (); @@ -422,12 +424,14 @@ destination_folder_handle_drop (EvolutionShellComponentDndDestinationFolder *fol inptr = strchr (name, ' '); name = g_strndup (name, inptr - name); - source = mail_tool_get_folder_from_urlname (url, name, 0, NULL); + source = mail_tool_get_folder_from_urlname (url, name, 0, &ex); g_free (name); g_free (url); - if (!source) + if (!source) { + camel_exception_clear (&ex); return FALSE; + } /* split the uids */ inptr++; diff --git a/mail/folder-browser.c b/mail/folder-browser.c index 4948b685b4..546b260664 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -433,7 +433,7 @@ message_list_drag_data_recieved (ETree *tree, int row, ETreePath path, int col, fd = open (url, O_RDONLY); if (fd == -1) { g_free (url); - return; + goto fail; } stream = camel_stream_fs_new_with_fd (fd); @@ -457,11 +457,11 @@ message_list_drag_data_recieved (ETree *tree, int row, ETreePath path, int col, case DND_TARGET_TYPE_X_EVOLUTION_MESSAGE: folder = x_evolution_message_parse (selection_data->data, selection_data->length, &uids); if (folder == NULL) - return; + goto fail; if (uids == NULL) { camel_object_unref (CAMEL_OBJECT (folder)); - return; + goto fail; } mail_do_transfer_messages (folder, uids, context->action == GDK_ACTION_MOVE, fb->uri); @@ -471,6 +471,13 @@ message_list_drag_data_recieved (ETree *tree, int row, ETreePath path, int col, } camel_exception_clear (&ex); + + gtk_drag_finish (context, TRUE, TRUE, GDK_CURRENT_TIME); + + fail: + camel_exception_clear (&ex); + + gtk_drag_finish (context, FALSE, TRUE, GDK_CURRENT_TIME); } static void |