talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 8036c8390afef6376c7c6d14bdff311ecdb20627
parent 4b775a2adb04bf2cd2eb174fb9a81ae48e58dcbf
Author: Colin Leroy <colin@colino.net>
Date:   Fri, 10 Jul 2009 07:40:27 +0000

2009-07-10 [colin]	3.7.2cvs6

	* src/prefs_display_header.c
		Fix bug 1951, 'C-Mail dumps core when editing
		displayed headers'. Patch by Alexey Rusakov

Diffstat:
MChangeLog | 6++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/prefs_display_header.c | 46++++------------------------------------------
4 files changed, 12 insertions(+), 43 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +2009-07-10 [colin] 3.7.2cvs6 + + * src/prefs_display_header.c + Fix bug 1951, 'C-Mail dumps core when editing + displayed headers'. Patch by Alexey Rusakov + 2009-07-10 [colin] 3.7.2cvs5 * src/folderview.c diff --git a/PATCHSETS b/PATCHSETS @@ -3830,3 +3830,4 @@ ( cvs diff -u -r 1.654.2.3896 -r 1.654.2.3897 configure.ac; ) > 3.7.2cvs3.patchset ( cvs diff -u -r 1.1.2.7 -r 1.1.2.8 src/gtk/spell_entry.c; ) > 3.7.2cvs4.patchset ( cvs diff -u -r 1.207.2.213 -r 1.207.2.214 src/folderview.c; ) > 3.7.2cvs5.patchset +( cvs diff -u -r 1.16.2.36 -r 1.16.2.37 src/prefs_display_header.c; ) > 3.7.2cvs6.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=2 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=5 +EXTRA_VERSION=6 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/prefs_display_header.c b/src/prefs_display_header.c @@ -93,20 +93,12 @@ static void prefs_display_header_insert_header (GtkListStore *store, static GtkWidget *prefs_display_header_list_view_create (const gchar *name); static void prefs_filtering_create_list_view_columns (GtkWidget *list_view, const gchar *name); -static void headers_list_model_row_changed (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - GtkTreeView *list_view); static void headers_list_model_rows_reordered (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer arg, GtkTreeView *list_view); -static void drag_begin (GtkTreeView *list_view, - GdkDragContext *context, - gpointer data); - static void drag_end (GtkTreeView *list_view, GdkDragContext *context, gpointer data); @@ -318,10 +310,6 @@ static void prefs_display_header_create(void) gtk_container_add(GTK_CONTAINER(list_view_scrolledwin), headers_list_view); gtk_tree_view_set_reorderable(GTK_TREE_VIEW(headers_list_view), TRUE); - g_signal_connect(G_OBJECT(headers_list_view), "drag_begin", - G_CALLBACK(drag_begin), - headers_list_view); - g_signal_connect(G_OBJECT(headers_list_view), "drag_end", G_CALLBACK(drag_end), headers_list_view); @@ -799,17 +787,6 @@ static void prefs_filtering_create_list_view_columns(GtkWidget *list_view, } /*! - *\brief Called as a result of a drag & drop - */ -static void headers_list_model_row_changed(GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - GtkTreeView *list_view) -{ - prefs_display_header_set_list(); -} - -/*! *\brief Called as a result of a gtk_list_store_swap() */ static void headers_list_model_rows_reordered(GtkTreeModel *model, @@ -821,28 +798,13 @@ static void headers_list_model_rows_reordered(GtkTreeModel *model, prefs_display_header_set_list(); } -static void drag_begin(GtkTreeView *list_view, - GdkDragContext *context, - gpointer data) -{ - /* XXX unfortunately a completed drag & drop does not emit - * a "rows_reordered" signal, but a "row_changed" signal. - * So during drag and drop, listen to "row_changed", and - * update the account list accordingly */ - - GtkTreeModel *model = gtk_tree_view_get_model(list_view); - g_signal_connect(G_OBJECT(model), "row_changed", - G_CALLBACK(headers_list_model_row_changed), - list_view); -} - +/*! + *\brief Called as a result of a drag & drop + */ static void drag_end(GtkTreeView *list_view, GdkDragContext *context, gpointer data) { - GtkTreeModel *model = gtk_tree_view_get_model(list_view); - g_signal_handlers_disconnect_by_func(G_OBJECT(model), - G_CALLBACK(headers_list_model_row_changed), - list_view); + prefs_display_header_set_list(); }