diff options
author | Radek Doulik <rodo@ximian.com> | 2001-05-04 03:34:28 +0800 |
---|---|---|
committer | Radek Doulik <rodo@src.gnome.org> | 2001-05-04 03:34:28 +0800 |
commit | 57546880c8e3470834bb7012aee9d892e3ac6708 (patch) | |
tree | 7e35c5570ccc364da9b3eba8d3caa5203869e4c0 /composer/listener.c | |
parent | 8bf36627ed9264607917c0f46c23d260197875c2 (diff) | |
download | gsoc2013-evolution-57546880c8e3470834bb7012aee9d892e3ac6708.tar.gz gsoc2013-evolution-57546880c8e3470834bb7012aee9d892e3ac6708.tar.zst gsoc2013-evolution-57546880c8e3470834bb7012aee9d892e3ac6708.zip |
signature editing fixes
* signature editing fixes
2001-05-03 Radek Doulik <rodo@ximian.com>
* e-msg-composer.c (get_signature_html): put signature in 100%
width table
(delete_old_signature): look only for first flow with signature == 1
(e_msg_composer_new): don't insert <BR>
(e_msg_composer_new_with_sig_file): ditto
(delete_old_signature): don't delete whole signature paragraph,
but just it's content
(delete_old_signature): if signature isn't found, insert new empty
paragraph to end of document for new signature
(e_msg_composer_set_sig_file): delete signature always
(e_msg_composer_set_sig_file): don't place signature to the end of
document, but place it where previous one was (if there wasn't
then new one is appended to the document)
2001-05-02 Radek Doulik <rodo@ximian.com>
* listener.c (impl_event): do automagic indenting only when
in_signature_insert is FALSE
* e-msg-composer.c (e_msg_composer_set_sig_file): do indent-zero
before signature inserting
(e_msg_composer_set_sig_file): use in_signature_insert flag
2001-05-01 Radek Doulik <rodo@ximian.com>
* listener.c (impl_event): set signature to 0 in newly created
empty paragraphs
(clear_signature): new helper function
svn path=/trunk/; revision=9658
Diffstat (limited to 'composer/listener.c')
-rw-r--r-- | composer/listener.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/composer/listener.c b/composer/listener.c index 8b13b0be64..0ed868a104 100644 --- a/composer/listener.c +++ b/composer/listener.c @@ -94,6 +94,18 @@ reply_indent (EditorListener *l, CORBA_Environment * ev) GNOME_GtkHTML_Editor_Engine_runCommand (l->composer->editor_engine, "cursor-position-restore", ev); } +static void +clear_signature (GNOME_GtkHTML_Editor_Engine e, CORBA_Environment * ev) +{ + if (GNOME_GtkHTML_Editor_Engine_isParagraphEmpty (e, ev)) + GNOME_GtkHTML_Editor_Engine_setParagraphData (e, "signature", "0", ev); + else if (GNOME_GtkHTML_Editor_Engine_isPreviousParagraphEmpty (e, ev) + && GNOME_GtkHTML_Editor_Engine_runCommand (e, "cursor-backward", ev)) { + GNOME_GtkHTML_Editor_Engine_setParagraphData (e, "signature", "0", ev); + GNOME_GtkHTML_Editor_Engine_runCommand (e, "cursor-forward", ev); + } +} + static CORBA_any * impl_event (PortableServer_Servant _servant, const CORBA_char * name, const CORBA_any * arg, @@ -101,17 +113,24 @@ impl_event (PortableServer_Servant _servant, { EditorListener *l = listener_from_servant (_servant); CORBA_any *rv = NULL; - CORBA_char *orig; /* printf ("impl_event\n"); */ if (!strcmp (name, "command")) { - /* FIXME check for insert-paragraph command */ - orig = GNOME_GtkHTML_Editor_Engine_getParagraphData (l->composer->editor_engine, "orig", ev); - if (ev->_major == CORBA_NO_EXCEPTION) { - if (!strcmp (orig, "1")) - reply_indent (l, ev); - GNOME_GtkHTML_Editor_Engine_setParagraphData (l->composer->editor_engine, "orig", "0", ev); + if (!l->composer->in_signature_insert) { + CORBA_char *orig, *signature; + /* FIXME check for insert-paragraph command */ + orig = GNOME_GtkHTML_Editor_Engine_getParagraphData (l->composer->editor_engine, "orig", ev); + if (ev->_major == CORBA_NO_EXCEPTION) { + if (orig && *orig == '1') + reply_indent (l, ev); + GNOME_GtkHTML_Editor_Engine_setParagraphData (l->composer->editor_engine, "orig", "0", ev); + } + signature = GNOME_GtkHTML_Editor_Engine_getParagraphData (l->composer->editor_engine, "signature", ev); + if (ev->_major == CORBA_NO_EXCEPTION) { + if (signature && *signature == '1') + clear_signature (l->composer->editor_engine, ev); + } } } else if (!strcmp (name, "image_url")) { gchar *url; @@ -119,7 +138,7 @@ impl_event (PortableServer_Servant _servant, if ((url = resolve_image_url (l, BONOBO_ARG_GET_STRING (arg)))) { rv = bonobo_arg_new (TC_string); BONOBO_ARG_SET_STRING (rv, url); - printf ("new url: %s\n", url); + /* printf ("new url: %s\n", url); */ g_free (url); } } |