+2003-07-17 [alfons] 0.9.3claws15
+
+ * src/folderview.[ch]
+ * src/summaryview.[ch]
+ * src/mimeview.[ch]
+ plug DnD leaks
+
2003-07-17 [paul] 0.9.3claws14
* src/inc.c
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws14
+EXTRA_VERSION=claws15
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
{N_("/S_coring..."), NULL, folderview_scoring_cb, 0, NULL}
};
+GtkTargetEntry folderview_drag_types[] =
+{
+ {"text/plain", GTK_TARGET_SAME_APP, TARGET_DUMMY}
+};
FolderView *folderview_create(void)
{
folderview);
/* drop callback */
- gtk_drag_dest_set(ctree, GTK_DEST_DEFAULT_ALL &
- ~GTK_DEST_DEFAULT_HIGHLIGHT,
+ gtk_drag_dest_set(ctree, GTK_DEST_DEFAULT_ALL & ~GTK_DEST_DEFAULT_HIGHLIGHT,
summary_drag_types, 1,
- GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_DEFAULT);
+ GDK_ACTION_MOVE | GDK_ACTION_COPY | GDK_ACTION_DEFAULT);
gtk_signal_connect(GTK_OBJECT(ctree), "drag_motion",
GTK_SIGNAL_FUNC(folderview_drag_motion_cb),
folderview);
gtk_widget_show_all(scrolledwin);
+ folderview->target_list = gtk_target_list_new(folderview_drag_types, 1);
folderview_list = g_list_append(folderview_list, folderview);
return folderview;
folderview_set_all();
}
-GtkTargetEntry folderview_drag_types[1] =
-{
- {"text/plain", GTK_TARGET_SAME_APP, TARGET_DUMMY}
-};
-
-
static void folderview_start_drag(GtkWidget *widget, gint button, GdkEvent *event,
FolderView *folderview)
{
- GtkTargetList *list;
GdkDragContext *context;
g_return_if_fail(folderview != NULL);
if (folderview->selected == NULL) return;
- list = gtk_target_list_new(folderview_drag_types, 1);
-
folderview->nodes_to_recollapse = NULL; /* in case the last drag has been cancelled */
- context = gtk_drag_begin(widget, list,
+ context = gtk_drag_begin(widget, folderview->target_list,
GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_DEFAULT, button, event);
gtk_drag_set_icon_default(context);
}
/* for drag and drop */
GSList *nodes_to_recollapse;
+ GtkTargetList *target_list; /* DnD */
};
FolderView *folderview_create (void);
mimeview->popupfactory = popupfactory;
mimeview->type = -1;
+ mimeview->target_list = gtk_target_list_new(mimeview_mime_types, 1);
+
mimeviews = g_slist_prepend(mimeviews, mimeview);
return mimeview;
viewer->destroy_viewer(viewer);
}
g_slist_free(mimeview->viewers);
+ gtk_target_list_unref(mimeview->target_list);
procmime_mimeinfo_free_all(mimeview->mimeinfo);
g_free(mimeview->file);
static void mimeview_start_drag(GtkWidget *widget, gint button,
GdkEvent *event, MimeView *mimeview)
{
- GtkTargetList *list;
GdkDragContext *context;
MimeInfo *partinfo;
partinfo = mimeview_get_selected_part(mimeview);
if (partinfo->filename == NULL && partinfo->name == NULL) return;
- list = gtk_target_list_new(mimeview_mime_types, 1);
- context = gtk_drag_begin(widget, list,
+ context = gtk_drag_begin(widget, mimeview->target_list,
GDK_ACTION_COPY, button, event);
gtk_drag_set_icon_default(context);
}
gchar *file;
GSList *viewers;
+
+ GtkTargetList *target_list; /* DnD */
};
struct _MimeViewerFactory
summaryview->msginfo_update_callback_id =
hooks_register_hook(MSGINFO_UPDATE_HOOKLIST, summary_update_msg, (gpointer) summaryview);
+ summaryview->target_list = gtk_target_list_new(summary_drag_types, 1);
+
/* CLAWS: need this to get the SummaryView * from
* the CList */
gtk_object_set_data(GTK_OBJECT(ctree), "summaryview", (gpointer)summaryview);
static void summary_start_drag(GtkWidget *widget, gint button, GdkEvent *event,
SummaryView *summaryview)
{
- GtkTargetList *list;
GdkDragContext *context;
g_return_if_fail(summaryview != NULL);
g_return_if_fail(summaryview->folder_item->folder != NULL);
if (summaryview->selected == NULL) return;
- list = gtk_target_list_new(summary_drag_types, 1);
-
- context = gtk_drag_begin(widget, list,
+ context = gtk_drag_begin(widget, summaryview->target_list,
GDK_ACTION_MOVE|GDK_ACTION_COPY|GDK_ACTION_DEFAULT, button, event);
gtk_drag_set_icon_default(context);
}
/* list for moving/deleting messages */
GSList *mlist;
int msginfo_update_callback_id;
+
+ GtkTargetList *target_list; /* DnD */
};
SummaryView *summary_create(void);