From dfe9acba7d65a26e7b00cc8859b3d75bd698d7ff Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Sun, 3 Apr 2011 09:53:44 +0000 Subject: [PATCH 1/1] 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... --- ChangeLog | 8 ++++++++ PATCHSETS | 1 + configure.ac | 2 +- src/compose.c | 9 +++++++-- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 928444f26..065e44eb6 100644 --- 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 index e1d97940a..3dd8e3f44 100644 --- 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 index 420a3db7f..6b5023850 100644 --- 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 index 9a32474d4..92785ee90 100644 --- 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)); -- 2.25.1