From ef6a3af717132e0750f226fa8a0ee0f3c98e19f0 Mon Sep 17 00:00:00 2001 From: Michael Zucci Date: Mon, 20 Sep 2004 05:59:55 +0000 Subject: Merged notzed-eplugin-2-branch to head. svn path=/trunk/; revision=27300 --- mail/message-list.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index 4c0fdff1fd..c34a4ccf1e 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -1678,33 +1679,47 @@ ml_drop_action(struct _drop_msg *m) } static void -ml_drop_popup_copy(GtkWidget *item, struct _drop_msg *m) +ml_drop_popup_copy(EPopup *ep, EPopupItem *item, void *data) { + struct _drop_msg *m = data; + m->action = GDK_ACTION_COPY; ml_drop_action(m); } static void -ml_drop_popup_move(GtkWidget *item, struct _drop_msg *m) +ml_drop_popup_move(EPopup *ep, EPopupItem *item, void *data) { + struct _drop_msg *m = data; + m->action = GDK_ACTION_MOVE; ml_drop_action(m); } static void -ml_drop_popup_cancel(GtkWidget *item, struct _drop_msg *m) +ml_drop_popup_cancel(EPopup *ep, EPopupItem *item, void *data) { + struct _drop_msg *m = data; + m->aborted = TRUE; mail_msg_free(&m->msg); } -static EMPopupItem ml_drop_popup_menu[] = { - { EM_POPUP_ITEM, "00.emc.02", N_("_Copy"), G_CALLBACK(ml_drop_popup_copy), NULL, "stock_folder-copy", 0 }, - { EM_POPUP_ITEM, "00.emc.03", N_("_Move"), G_CALLBACK(ml_drop_popup_move), NULL, "stock_folder-move", 0 }, - { EM_POPUP_BAR, "10.emc" }, - { EM_POPUP_ITEM, "99.emc.00", N_("Cancel _Drag"), G_CALLBACK(ml_drop_popup_cancel), NULL, NULL, 0 }, +static EPopupItem ml_drop_popup_menu[] = { + { E_POPUP_ITEM, "00.emc.02", N_("_Copy"), ml_drop_popup_copy, NULL, "stock_folder-copy", 0 }, + { E_POPUP_ITEM, "00.emc.03", N_("_Move"), ml_drop_popup_move, NULL, "stock_folder-move", 0 }, + { E_POPUP_BAR, "10.emc" }, + { E_POPUP_ITEM, "99.emc.00", N_("Cancel _Drag"), ml_drop_popup_cancel, NULL, NULL, 0 }, }; +static void +ml_drop_popup_free(EPopup *ep, GSList *items, void *data) +{ + g_slist_free(items); + + /* FIXME: free data if no item was selected? */ +} + static void ml_tree_drag_data_received (ETree *tree, int row, ETreePath path, int col, GdkDragContext *context, gint x, gint y, @@ -1738,14 +1753,11 @@ ml_tree_drag_data_received (ETree *tree, int row, ETreePath path, int col, int i; emp = em_popup_new("com.ximian.mail.messagelist.popup.drop"); - for (i=0;iactivate_data = m; - menus = g_slist_append(menus, item); - } - em_popup_add_items(emp, menus, (GDestroyNotify)g_slist_free); - menu = em_popup_create_menu_once(emp, NULL, 0, 0); + e_popup_add_items((EPopup *)emp, menus, ml_drop_popup_free, m); + menu = e_popup_create_menu_once((EPopup *)emp, NULL, 0, 0); gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time()); } else { ml_drop_action(m); @@ -1848,7 +1860,7 @@ message_list_destroy(GtkObject *object) mail_async_event_destroy(message_list->async_event); message_list->async_event = NULL; } - + if (message_list->folder) { /* need to do this before removing folder, folderinfo's might not exist after */ save_tree_state(message_list); @@ -2738,7 +2750,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) { CamelFolderChangeInfo *changes; MessageList *ml = MESSAGE_LIST (user_data); - + if (event_data) { changes = camel_folder_change_info_new(); camel_folder_change_info_cat(changes, (CamelFolderChangeInfo *)event_data); -- cgit v1.2.3