talons

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

commit dfe9acba7d65a26e7b00cc8859b3d75bd698d7ff
parent 274465d542fcb2c13cac91c81949fe2e4ba95b4d
Author: Colin Leroy <colin@colino.net>
Date:   Sun,  3 Apr 2011 09:53:44 +0000

2011-04-03 [colin]	3.7.8cvs70

	* src/compose.c
		Fix bug #2365 again, "Crash when auto-scrolling headers in
		compose window".
		Batch-mode compose windows (from filtering actions) shouldn't
		try to access stuff after flushing events...

Diffstat:
MChangeLog | 8++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/compose.c | 9+++++++--
4 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,11 @@ +2011-04-03 [colin] 3.7.8cvs70 + + * src/compose.c + Fix bug #2365 again, "Crash when auto-scrolling headers in + compose window". + Batch-mode compose windows (from filtering actions) shouldn't + try to access stuff after flushing events... + 2011-03-31 [paul] 3.7.8cvs69 * INSTALL diff --git a/PATCHSETS b/PATCHSETS @@ -4143,3 +4143,4 @@ ( cvs diff -u -r 1.654.2.4215 -r 1.654.2.4216 configure.ac; ) > 3.7.8cvs67.patchset ( cvs diff -u -r 1.94.2.213 -r 1.94.2.214 src/messageview.c; ) > 3.7.8cvs68.patchset ( cvs diff -u -r 1.29.2.12 -r 1.29.2.13 INSTALL; ) > 3.7.8cvs69.patchset +( cvs diff -u -r 1.382.2.568 -r 1.382.2.569 src/compose.c; ) > 3.7.8cvs70.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=8 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=69 +EXTRA_VERSION=70 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/compose.c b/src/compose.c @@ -10799,6 +10799,9 @@ static gboolean compose_headerentry_key_press_event_cb(GtkWidget *entry, static gboolean scroll_postpone(gpointer data) { Compose *compose = (Compose *)data; + + cm_return_val_if_fail(!compose->batch, FALSE); + GTK_EVENTS_FLUSH(); compose_show_first_last_header(compose, FALSE); return FALSE; @@ -10812,8 +10815,9 @@ static void compose_headerentry_changed_cb(GtkWidget *entry, g_signal_handlers_disconnect_matched (G_OBJECT(entry), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, headerentry); - - g_timeout_add(0, scroll_postpone, headerentry->compose); + + if (!headerentry->compose->batch) + g_timeout_add(0, scroll_postpone, headerentry->compose); } } @@ -10822,6 +10826,7 @@ static void compose_show_first_last_header(Compose *compose, gboolean show_first GtkAdjustment *vadj; cm_return_if_fail(compose); + cm_return_if_fail(!compose->batch); cm_return_if_fail(GTK_IS_WIDGET(compose->header_table)); cm_return_if_fail(GTK_IS_VIEWPORT(compose->header_table->parent)); vadj = gtk_viewport_get_vadjustment(GTK_VIEWPORT(compose->header_table->parent));