[evolution/gnome-3-16] Composer - Extra new line added on the end of reply
- From: Tomas Popela <tpopela src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/gnome-3-16] Composer - Extra new line added on the end of reply
- Date: Thu, 9 Apr 2015 09:31:08 +0000 (UTC)
commit b5e2ae26de1db6a8050a8abb3c32941a6bfa1b5f
Author: Tomas Popela <tpopela redhat com>
Date: Wed Apr 8 16:16:57 2015 +0200
Composer - Extra new line added on the end of reply
When replying on message there is an extra empty line added on the end of the original
text. It gets there while parsing the original message as the trailing CRLF is not
removed. The proper fix would be to delete the trailing CRLF, but it is safer
to just mark it in editor to remove the trailing new line later.
composer/e-msg-composer.c | 5 ++++-
e-util/e-html-editor-view.c | 17 ++++++++++-------
e-util/e-html-editor-view.h | 6 +++---
e-util/e-mail-signature-editor.c | 2 --
4 files changed, 17 insertions(+), 13 deletions(-)
---
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 94ccfb2..a0077ce 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -2732,9 +2732,13 @@ e_msg_composer_class_init (EMsgComposerClass *class)
static void
e_msg_composer_init (EMsgComposer *composer)
{
+ EHTMLEditorView *view;
+
composer->priv = E_MSG_COMPOSER_GET_PRIVATE (composer);
composer->priv->editor = g_object_ref_sink (e_html_editor_new ());
+ view = e_html_editor_get_view (composer->priv->editor);
+ e_html_editor_view_set_is_editting_message (view, TRUE);
}
/**
@@ -4596,7 +4600,6 @@ e_msg_composer_set_body (EMsgComposer *composer,
set_editor_text (composer, content, TRUE, FALSE);
e_html_editor_view_set_html_mode (view, FALSE);
- e_html_editor_view_set_remove_initial_input_line (view, TRUE);
webkit_web_view_set_editable (WEBKIT_WEB_VIEW (view), FALSE);
g_free (priv->mime_body);
diff --git a/e-util/e-html-editor-view.c b/e-util/e-html-editor-view.c
index 57b6414..92d6eb6 100644
--- a/e-util/e-html-editor-view.c
+++ b/e-util/e-html-editor-view.c
@@ -94,10 +94,10 @@ struct _EHTMLEditorViewPrivate {
gboolean convert_in_situ;
gboolean body_input_event_removed;
+ gboolean is_editting_message;
gboolean is_message_from_draft;
gboolean is_message_from_edit_as_new;
gboolean is_message_from_selection;
- gboolean remove_initial_input_line;
gboolean return_key_pressed;
gboolean space_key_pressed;
gboolean smiley_written;
@@ -6201,7 +6201,7 @@ parse_html_into_paragraphs (EHTMLEditorView *view,
element_add_class (
WEBKIT_DOM_ELEMENT (child),
"-x-evo-last-br");
- } else
+ } else if (!view->priv->is_editting_message)
create_and_append_new_paragraph (
selection, document, blockquote, block, "<br>");
} else
@@ -6676,7 +6676,10 @@ html_editor_convert_view_content (EHTMLEditorView *view,
remove_node (WEBKIT_DOM_NODE (content_wrapper));
}
- if (view->priv->is_message_from_edit_as_new || view->priv->remove_initial_input_line ||
!start_bottom) {
+ /* If not editting a message, don't add any new block and just place
+ * the carret in the beginning of content. We want to have the same
+ * behaviour when editting message as new or we start replying on top. */
+ if (!view->priv->is_editting_message || view->priv->is_message_from_edit_as_new || !start_bottom) {
WebKitDOMNode *child;
remove_node (WEBKIT_DOM_NODE (paragraph));
@@ -9500,10 +9503,10 @@ e_html_editor_view_init (EHTMLEditorView *view)
e_html_editor_view_update_fonts (view);
view->priv->body_input_event_removed = TRUE;
+ view->priv->is_editting_message = FALSE;
view->priv->is_message_from_draft = FALSE;
view->priv->is_message_from_selection = FALSE;
view->priv->is_message_from_edit_as_new = FALSE;
- view->priv->remove_initial_input_line = FALSE;
view->priv->convert_in_situ = FALSE;
view->priv->return_key_pressed = FALSE;
view->priv->space_key_pressed = FALSE;
@@ -10664,12 +10667,12 @@ e_html_editor_view_set_is_message_from_edit_as_new (EHTMLEditorView *view,
}
void
-e_html_editor_view_set_remove_initial_input_line (EHTMLEditorView *view,
- gboolean value)
+e_html_editor_view_set_is_editting_message (EHTMLEditorView *view,
+ gboolean value)
{
g_return_if_fail (E_IS_HTML_EDITOR_VIEW (view));
- view->priv->remove_initial_input_line = value;
+ view->priv->is_editting_message = value;
}
gboolean
diff --git a/e-util/e-html-editor-view.h b/e-util/e-html-editor-view.h
index fbb7dd1..ccca267 100644
--- a/e-util/e-html-editor-view.h
+++ b/e-util/e-html-editor-view.h
@@ -257,6 +257,9 @@ void remove_image_attributes_from_element
(WebKitDOMElement *element);
gboolean e_html_editor_view_is_message_from_draft
(EHTMLEditorView *view);
+void e_html_editor_view_set_is_editting_message
+ (EHTMLEditorView *view,
+ gboolean value);
void e_html_editor_view_set_is_message_from_draft
(EHTMLEditorView *view,
gboolean value);
@@ -268,9 +271,6 @@ gboolean e_html_editor_view_is_message_from_edit_as_new
void e_html_editor_view_set_is_message_from_edit_as_new
(EHTMLEditorView *view,
gboolean value);
-void e_html_editor_view_set_remove_initial_input_line
- (EHTMLEditorView *view,
- gboolean value);
void e_html_editor_view_insert_quoted_text
(EHTMLEditorView *view,
const gchar *text);
diff --git a/e-util/e-mail-signature-editor.c b/e-util/e-mail-signature-editor.c
index 47ca66d..1520a6c 100644
--- a/e-util/e-mail-signature-editor.c
+++ b/e-util/e-mail-signature-editor.c
@@ -499,8 +499,6 @@ mail_signature_editor_constructed (GObject *object)
editor = e_mail_signature_editor_get_editor (window);
view = e_html_editor_get_view (editor);
- e_html_editor_view_set_remove_initial_input_line (view, TRUE);
-
ui_manager = e_html_editor_get_ui_manager (editor);
/* Because we are loading from a hard-coded string, there is
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]