2011-04-03 [colin] 3.7.8cvs70
authorColin Leroy <colin@colino.net>
Sun, 3 Apr 2011 09:53:44 +0000 (09:53 +0000)
committerColin Leroy <colin@colino.net>
Sun, 3 Apr 2011 09:53:44 +0000 (09:53 +0000)
* 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
PATCHSETS
configure.ac
src/compose.c

index 928444f..065e44e 100644 (file)
--- 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
 2011-03-31 [paul]      3.7.8cvs69
 
        * INSTALL
index e1d9794..3dd8e3f 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( 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.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
index 420a3db..6b50238 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=8
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=8
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=69
+EXTRA_VERSION=70
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 9a32474..92785ee 100644 (file)
@@ -10799,6 +10799,9 @@ static gboolean compose_headerentry_key_press_event_cb(GtkWidget *entry,
 static gboolean scroll_postpone(gpointer data)
 {
        Compose *compose = (Compose *)data;
 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;
        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_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);
        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));
        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));