2006-03-16 [colin] 2.0.0cvs144
authorColin Leroy <colin@colino.net>
Thu, 16 Mar 2006 23:11:51 +0000 (23:11 +0000)
committerColin Leroy <colin@colino.net>
Thu, 16 Mar 2006 23:11:51 +0000 (23:11 +0000)
* src/sourcewindow.c
* src/sourcewindow.h
And the last one, in source window.

ChangeLog
PATCHSETS
configure.ac
src/sourcewindow.c
src/sourcewindow.h

index 86102fe..f651f61 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-16 [colin]     2.0.0cvs144
+
+       * src/sourcewindow.c
+       * src/sourcewindow.h
+               And the last one, in source window.
+
 2006-03-16 [colin]     2.0.0cvs143
 
        * src/compose.c
index 782a6d4..576f9a7 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.150.2.57 -r 1.150.2.58 src/procmsg.c;  cvs diff -u -r 1.60.2.26 -r 1.60.2.27 src/procmsg.h;  cvs diff -u -r 1.213.2.85 -r 1.213.2.86 src/folder.c;  cvs diff -u -r 1.49.2.74 -r 1.49.2.75 src/procmime.c;  cvs diff -u -r 1.17.2.14 -r 1.17.2.15 src/procmime.h;  cvs diff -u -r 1.43.2.41 -r 1.43.2.42 src/toolbar.c;  cvs diff -u -r 1.94.2.80 -r 1.94.2.81 src/messageview.c;  cvs diff -u -r 1.19.2.7 -r 1.19.2.8 src/messageview.h;  ) > 2.0.0cvs141.patchset
 ( cvs diff -u -r 1.94.2.81 -r 1.94.2.82 src/messageview.c;  ) > 2.0.0cvs142.patchset
 ( cvs diff -u -r 1.382.2.250 -r 1.382.2.251 src/compose.c;  cvs diff -u -r 1.50.2.22 -r 1.50.2.23 src/compose.h;  ) > 2.0.0cvs143.patchset
+( cvs diff -u -r 1.9.2.16 -r 1.9.2.17 src/sourcewindow.c;  cvs diff -u -r 1.1.1.1.16.2 -r 1.1.1.1.16.3 src/sourcewindow.h;  ) > 2.0.0cvs144.patchset
index ac98474..3d1bb87 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=0
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=143
+EXTRA_VERSION=144
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index f096276..6c0de4d 100644 (file)
@@ -120,6 +120,11 @@ void source_window_show(SourceWindow *sourcewin)
 
 void source_window_destroy(SourceWindow *sourcewin)
 {
+       if (sourcewin->updating) {
+               debug_print("deferring destroy\n");
+               sourcewin->deferred_destroy = TRUE;
+               return;
+       }
        gtk_widget_destroy(sourcewin->window);
        g_free(sourcewin);
 }
@@ -133,7 +138,16 @@ void source_window_show_msg(SourceWindow *sourcewin, MsgInfo *msginfo)
 
        g_return_if_fail(msginfo != NULL);
 
+       sourcewin->updating = TRUE;
        file = procmsg_get_message_file(msginfo);
+       sourcewin->updating = FALSE;
+       
+       if (sourcewin->deferred_destroy) {
+               g_free(file);
+               source_window_destroy(sourcewin);
+               return;
+       }
+
        g_return_if_fail(file != NULL);
 
        if ((fp = g_fopen(file, "rb")) == NULL) {
index 6b8690d..43ef6e5 100644 (file)
@@ -32,6 +32,9 @@ struct _SourceWindow
        GtkWidget *window;
        GtkWidget *scrolledwin;
        GtkWidget *text;
+       
+       gboolean updating;
+       gboolean deferred_destroy;
 };
 
 SourceWindow *source_window_create     (void);