diff options
author | Not Zed <NotZed@Ximian.com> | 2004-01-28 21:36:07 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-01-28 21:36:07 +0800 |
commit | f6588d3c668f4f4a6a3966179b065d3581f64084 (patch) | |
tree | f6fc19cd8ecb35ac3bd0257cd20419a33d503fb8 /composer/e-msg-composer.c | |
parent | f58bb183fdf47981d8a85aaf1ad1b92575236cb1 (diff) | |
download | gsoc2013-evolution-f6588d3c668f4f4a6a3966179b065d3581f64084.tar.gz gsoc2013-evolution-f6588d3c668f4f4a6a3966179b065d3581f64084.tar.zst gsoc2013-evolution-f6588d3c668f4f4a6a3966179b065d3581f64084.zip |
** See Bug #53176, probably fixes others too.
2004-01-28 Not Zed <NotZed@Ximian.com>
** See Bug #53176, probably fixes others too.
* e-msg-composer.c (set_editor_text): When we set the text, always
add the signature implictly. Means we don't have to set it
manually and break changing the file, or hit any races.
(e_msg_composer_set_body_text): dont call show_sig_file here.
svn path=/trunk/; revision=24490
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r-- | composer/e-msg-composer.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 8b69751eae..96b551a78d 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -1084,7 +1084,9 @@ set_editor_text (EMsgComposer *composer, const char *text) BonoboWidget *editor; CORBA_Environment ev; Bonobo_Unknown object; - + char *sig, *mem = NULL, *content; + size_t len; + g_return_if_fail (composer->persist_stream_interface != CORBA_OBJECT_NIL); persist = composer->persist_stream_interface; @@ -1092,8 +1094,22 @@ set_editor_text (EMsgComposer *composer, const char *text) editor = BONOBO_WIDGET (composer->editor); CORBA_exception_init (&ev); - - stream = bonobo_stream_mem_create (text, strlen (text), TRUE, FALSE); + + /* This copying bullshit is because the bonobo stream interface is just painful */ + sig = get_signature_html(composer); + len = strlen(text); + if (sig) { + len += strlen(sig); + content = mem = g_malloc(len+1); + memcpy(mem, text, strlen(text)); + strcpy(mem + strlen(text), sig); + } else { + content = text; + } + + stream = bonobo_stream_mem_create(content, len, TRUE, FALSE); + g_free(mem); + object = bonobo_object_corba_objref (BONOBO_OBJECT (stream)); Bonobo_PersistStream_load (persist, (Bonobo_Stream) object, "text/html", &ev); if (ev._major != CORBA_NO_EXCEPTION) { @@ -2866,7 +2882,7 @@ map_default_cb (EMsgComposer *composer, gpointer user_data) CORBA_Environment ev; const char *subject; char *text; - + /* If the 'To:' field is empty, focus it (This is ridiculously complicated) */ widget = e_msg_composer_hdrs_get_to_entry (E_MSG_COMPOSER_HDRS (composer->hdrs)); @@ -3177,7 +3193,6 @@ create_composer (int visible_mask) gtk_widget_show (composer->editor); e_msg_composer_show_attachments (composer, FALSE); - prepare_engine (composer); if (composer->editor_engine == CORBA_OBJECT_NIL) { e_activation_failure_dialog (GTK_WINDOW (composer), @@ -3190,7 +3205,7 @@ create_composer (int visible_mask) } setup_cut_copy_paste (composer); - + g_signal_connect (composer, "map", (GCallback) map_default_cb, NULL); if (am == NULL) @@ -4185,13 +4200,8 @@ e_msg_composer_set_body_text (EMsgComposer *composer, const char *text) g_return_if_fail (E_IS_MSG_COMPOSER (composer)); set_editor_text (composer, text); - - /* set editor text unfortunately kills the signature so we - have to re-show it */ - e_msg_composer_show_sig_file (composer); } - /** * e_msg_composer_set_body: * @composer: a composer object |