aboutsummaryrefslogtreecommitdiffstats
path: root/composer
diff options
context:
space:
mode:
Diffstat (limited to 'composer')
-rw-r--r--composer/ChangeLog5
-rw-r--r--composer/e-msg-composer.c49
2 files changed, 30 insertions, 24 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index a9f13303b8..4a2cf3b2a4 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,8 @@
+2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
+
+ * e-msg-composer.c (drag_data_received): Correctly handle
+ text/uri-list's that contain more than a single file reference.
+
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* e-msg-composer.c (menu_changed_charset_cb): Removed a warning
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 767e166144..4ae4256881 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -2010,17 +2010,14 @@ message_rfc822_dnd (EMsgComposer *composer, CamelStream *stream)
}
static void
-drag_data_received (EMsgComposer *composer,
- GdkDragContext *context,
- gint x,
- gint y,
- GtkSelectionData *selection,
- guint info,
- guint time)
-{
- gchar *temp, *filename;
+drag_data_received (EMsgComposer *composer, GdkDragContext *context,
+ gint x, gint y, GtkSelectionData *selection,
+ guint info, guint time)
+{
+ gchar *tmp, *filename, **filenames;
CamelStream *stream;
CamelURL *url;
+ int i;
switch (info) {
case DND_TYPE_MESSAGE_RFC822:
@@ -2033,23 +2030,27 @@ drag_data_received (EMsgComposer *composer,
camel_object_unref (CAMEL_OBJECT (stream));
break;
case DND_TYPE_TEXT_URI_LIST:
- filename = g_strndup (selection->data, selection->length);
- temp = strchr (filename, '\n');
- if (temp)
- *temp = '\0';
- g_strstrip (filename);
+ tmp = g_strndup (selection->data, selection->length);
+ filenames = g_strsplit (tmp, "\n", 0);
+ g_free (tmp);
- url = camel_url_new (filename, NULL);
- g_free (filename);
- filename = url->path;
- url->path = NULL;
- camel_url_free (url);
-
- e_msg_composer_attachment_bar_attach
- (E_MSG_COMPOSER_ATTACHMENT_BAR (composer->attachment_bar),
- filename);
+ for (i = 0; filenames[i] != NULL; i++) {
+ filename = g_strstrip (filenames[i]);
+
+ url = camel_url_new (filename, NULL);
+ g_free (filename);
+ filename = url->path;
+ url->path = NULL;
+ camel_url_free (url);
+
+ e_msg_composer_attachment_bar_attach
+ (E_MSG_COMPOSER_ATTACHMENT_BAR (composer->attachment_bar),
+ filename);
+
+ g_free (filename);
+ }
- g_free (filename);
+ g_free (filenames);
break;
default:
break;