From: Alfons Hoogervorst Date: Thu, 17 Jul 2003 08:39:41 +0000 (+0000) Subject: * src/folderview.[ch] X-Git-Tag: rel_0_9_4~101 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=518a0ea9a55d1756d8c9afa99c5acfebb03728b1 * src/folderview.[ch] * src/summaryview.[ch] * src/mimeview.[ch] plug DnD leaks --- diff --git a/ChangeLog.claws b/ChangeLog.claws index c2c0130b9..3db0ce84a 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,10 @@ +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 diff --git a/configure.ac b/configure.ac index 1a16fbafd..758768b75 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=9 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 diff --git a/src/folderview.c b/src/folderview.c index d15392208..b4973d2f6 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -352,6 +352,10 @@ static GtkItemFactoryEntry folderview_news_popup_entries[] = {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) { @@ -486,10 +490,9 @@ 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); @@ -518,6 +521,7 @@ FolderView *folderview_create(void) 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; @@ -2799,26 +2803,17 @@ void folderview_reflect_prefs_pixmap_theme(FolderView *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); } diff --git a/src/folderview.h b/src/folderview.h index bfec50a05..530e113c9 100644 --- a/src/folderview.h +++ b/src/folderview.h @@ -61,6 +61,7 @@ struct _FolderView /* for drag and drop */ GSList *nodes_to_recollapse; + GtkTargetList *target_list; /* DnD */ }; FolderView *folderview_create (void); diff --git a/src/mimeview.c b/src/mimeview.c index 95cb33f82..eee0f61b0 100644 --- a/src/mimeview.c +++ b/src/mimeview.c @@ -228,6 +228,8 @@ MimeView *mimeview_create(MainWindow *mainwin) 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; @@ -362,6 +364,7 @@ void mimeview_destroy(MimeView *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); @@ -682,7 +685,6 @@ static void mimeview_selected(GtkCTree *ctree, GtkCTreeNode *node, gint column, static void mimeview_start_drag(GtkWidget *widget, gint button, GdkEvent *event, MimeView *mimeview) { - GtkTargetList *list; GdkDragContext *context; MimeInfo *partinfo; @@ -691,8 +693,7 @@ static void mimeview_start_drag(GtkWidget *widget, gint button, 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); } diff --git a/src/mimeview.h b/src/mimeview.h index 6420950b3..997c5c772 100644 --- a/src/mimeview.h +++ b/src/mimeview.h @@ -70,6 +70,8 @@ struct _MimeView gchar *file; GSList *viewers; + + GtkTargetList *target_list; /* DnD */ }; struct _MimeViewerFactory diff --git a/src/summaryview.c b/src/summaryview.c index 82637311b..6c3558cfd 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -709,6 +709,8 @@ SummaryView *summary_create(void) 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); @@ -4836,7 +4838,6 @@ static void summary_locked_clicked(GtkWidget *button, static void summary_start_drag(GtkWidget *widget, gint button, GdkEvent *event, SummaryView *summaryview) { - GtkTargetList *list; GdkDragContext *context; g_return_if_fail(summaryview != NULL); @@ -4844,9 +4845,7 @@ static void summary_start_drag(GtkWidget *widget, gint button, GdkEvent *event, 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); } diff --git a/src/summaryview.h b/src/summaryview.h index d0b35a71c..d3d2d5b6c 100644 --- a/src/summaryview.h +++ b/src/summaryview.h @@ -165,6 +165,8 @@ private: /* list for moving/deleting messages */ GSList *mlist; int msginfo_update_callback_id; + + GtkTargetList *target_list; /* DnD */ }; SummaryView *summary_create(void);