[evolution/wip/webkit2] EHTMLEditorView - Deleting a selection and undoing it will restore the selection wrongly
- From: Tomas Popela <tpopela src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/webkit2] EHTMLEditorView - Deleting a selection and undoing it will restore the selection wrongly
- Date: Wed, 22 Apr 2015 13:16:27 +0000 (UTC)
commit bd874d688bdae59ef195139740a2814c4ddc1952
Author: Tomas Popela <tpopela redhat com>
Date: Wed Apr 22 11:09:23 2015 +0200
EHTMLEditorView - Deleting a selection and undoing it will restore the selection wrongly
web-extensions/e-html-editor-undo-redo-manager.c | 13 +++++--------
web-extensions/e-html-editor-view-dom-functions.c | 5 ++---
2 files changed, 7 insertions(+), 11 deletions(-)
---
diff --git a/web-extensions/e-html-editor-undo-redo-manager.c
b/web-extensions/e-html-editor-undo-redo-manager.c
index f4f51fd..d660509 100644
--- a/web-extensions/e-html-editor-undo-redo-manager.c
+++ b/web-extensions/e-html-editor-undo-redo-manager.c
@@ -302,7 +302,7 @@ undo_delete (WebKitDOMDocument *document,
dom_selection_restore (document);
dom_force_spell_check (document, extension);
} else {
- WebKitDOMNode *inserted_node, *nd;
+ WebKitDOMNode *nd;
element = webkit_dom_document_create_element (document, "span", NULL);
@@ -331,7 +331,7 @@ undo_delete (WebKitDOMDocument *document,
}
/* Insert the deleted content back to the body. */
- inserted_node = webkit_dom_node_insert_before (
+ webkit_dom_node_insert_before (
webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (element)),
fragment,
WEBKIT_DOM_NODE (element),
@@ -342,13 +342,10 @@ undo_delete (WebKitDOMDocument *document,
/* If the selection markers are presented restore the selection,
* otherwise the selection was not callapsed so select the deleted
* content as it was before the delete occured. */
- if (webkit_dom_document_fragment_query_selector (event->data.fragment,
"span#-x-evo-selection-start-marker", NULL)) {
+ if (webkit_dom_document_fragment_query_selector (event->data.fragment,
"span#-x-evo-selection-start-marker", NULL))
dom_selection_restore (document);
- } else {
- webkit_dom_range_select_node (range, WEBKIT_DOM_NODE (inserted_node), NULL);
- webkit_dom_dom_selection_remove_all_ranges (dom_selection);
- webkit_dom_dom_selection_add_range (dom_selection, range);
- }
+ else
+ restore_selection_to_history_event_state (document, event->before);
if (e_html_editor_web_extension_get_magic_smileys_enabled (extension))
dom_check_magic_smileys (document, extension);
diff --git a/web-extensions/e-html-editor-view-dom-functions.c
b/web-extensions/e-html-editor-view-dom-functions.c
index c6c3c46..e85ea23 100644
--- a/web-extensions/e-html-editor-view-dom-functions.c
+++ b/web-extensions/e-html-editor-view-dom-functions.c
@@ -6651,7 +6651,6 @@ save_history_for_delete_or_backspace (WebKitDOMDocument *document,
ev = g_new0 (EHTMLEditorHistoryEvent, 1);
ev->type = HISTORY_DELETE;
- range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
dom_selection_get_coordinates (
document, &ev->before.start.x, &ev->before.start.y, &ev->before.end.x, &ev->before.end.y);
range = webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
@@ -6722,8 +6721,8 @@ save_history_for_delete_or_backspace (WebKitDOMDocument *document,
} else {
ev->after.start.x = ev->before.start.x;
ev->after.start.y = ev->before.start.y;
- ev->after.end.x = ev->before.end.x;
- ev->after.end.y = ev->before.end.y;
+ ev->after.end.x = ev->before.start.x;
+ ev->after.end.y = ev->before.start.y;
fragment = webkit_dom_range_clone_contents (range, NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]