Explicitly remove draft timeout to fix nasty race between
compose_send_cb() (which destroys the compose window) and
compose_defer_auto_save_draft() (which expects compose
window to exist). Should fix Keith's and Fred Malton's
bug report (#128, "crash after complaining about character
set conversion")
+2004-02-27 [alfons] 0.9.9claws35
+
+ * src/compose.[ch]
+ Explicitly remove draft timeout to fix nasty race between
+ compose_send_cb() (which destroys the compose window) and
+ compose_defer_auto_save_draft() (which expects compose
+ window to exist). Should fix Keith's and Fred Malton's
+ bug report (#128, "crash after complaining about character
+ set conversion")
+
2004-02-27 [luke] 0.9.9claws34
* src/folder.c
2004-02-27 [luke] 0.9.9claws34
* src/folder.c
MICRO_VERSION=9
INTERFACE_AGE=0
BINARY_AGE=0
MICRO_VERSION=9
INTERFACE_AGE=0
BINARY_AGE=0
if test $EXTRA_VERSION -eq 0; then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
else
if test $EXTRA_VERSION -eq 0; then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
else
compose->exteditor_pid = -1;
compose->exteditor_readdes = -1;
compose->exteditor_tag = -1;
compose->exteditor_pid = -1;
compose->exteditor_readdes = -1;
compose->exteditor_tag = -1;
+ compose->draft_timeout_tag = -1;
#if USE_ASPELL
menu_set_sensitive(ifactory, "/Spelling", FALSE);
#if USE_ASPELL
menu_set_sensitive(ifactory, "/Spelling", FALSE);
_("Yes"), _("No"), NULL) != G_ALERTDEFAULT)
return;
_("Yes"), _("No"), NULL) != G_ALERTDEFAULT)
return;
+ if (compose->draft_timeout_tag != -1) { /* CLAWS: disable draft timeout */
+ gtk_timeout_remove(compose->draft_timeout_tag);
+ compose->draft_timeout_tag = -1;
+ }
+
compose_allow_user_actions (compose, FALSE);
compose->sending = TRUE;
val = compose_send(compose);
compose_allow_user_actions (compose, FALSE);
compose->sending = TRUE;
val = compose_send(compose);
if (prefs_common.autosave &&
gtk_stext_get_length(GTK_STEXT(widget)) % prefs_common.autosave_length == 0)
if (prefs_common.autosave &&
gtk_stext_get_length(GTK_STEXT(widget)) % prefs_common.autosave_length == 0)
- gtk_timeout_add(500, (GtkFunction) compose_defer_auto_save_draft, compose);
+ compose->draft_timeout_tag = gtk_timeout_add
+ (500, (GtkFunction) compose_defer_auto_save_draft, compose);
}
static gint compose_defer_auto_save_draft(Compose *compose)
{
}
static gint compose_defer_auto_save_draft(Compose *compose)
{
+ compose->draft_timeout_tag = -1;
compose_draft_cb((gpointer)compose, 2, NULL);
return FALSE;
}
compose_draft_cb((gpointer)compose, 2, NULL);
return FALSE;
}
gchar *redirect_filename;
gboolean remove_references;
gchar *redirect_filename;
gboolean remove_references;
+
+ guint draft_timeout_tag;