[evolution/wip/mcrha/webkit-jsc-api] e-undo-redo.js: Extend stored data on deletion events
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/mcrha/webkit-jsc-api] e-undo-redo.js: Extend stored data on deletion events
- Date: Thu, 7 Nov 2019 11:39:38 +0000 (UTC)
commit 2978da006e977869ed9104d84a21415bd41cd5f9
Author: Milan Crha <mcrha redhat com>
Date: Thu Nov 7 12:40:15 2019 +0100
e-undo-redo.js: Extend stored data on deletion events
data/webkit/e-editor.js | 5 ++++-
data/webkit/e-undo-redo.js | 53 ++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 55 insertions(+), 3 deletions(-)
---
diff --git a/data/webkit/e-editor.js b/data/webkit/e-editor.js
index c042325b65..94157534fa 100644
--- a/data/webkit/e-editor.js
+++ b/data/webkit/e-editor.js
@@ -468,7 +468,10 @@ EvoEditor.ClaimAffectedContent = function(startNode, endNode, flags)
}
if (!endNode) {
- endNode = startNode;
+ endNode = document.getSelection().extentNode;
+
+ if (!endNode)
+ endNode = startNode;
}
if ((flags & EvoEditor.CLAIM_CONTENT_FLAG_USE_PARENT_BLOCK_NODE) != 0) {
diff --git a/data/webkit/e-undo-redo.js b/data/webkit/e-undo-redo.js
index 07df49b383..bebbd1670a 100644
--- a/data/webkit/e-undo-redo.js
+++ b/data/webkit/e-undo-redo.js
@@ -373,12 +373,61 @@ EvoUndoRedo.before_input_cb = function(inputEvent)
return;
}
- var opType = inputEvent.inputType, record;
+ var opType = inputEvent.inputType, record, startNode = null, endNode = null;
if (EvoUndoRedo.isWordDelimEvent(inputEvent))
opType += "::WordDelim";
- record = EvoUndoRedo.StartRecord(EvoUndoRedo.RECORD_KIND_EVENT, opType, null, null,
+ if (opType == "deleteWordBackward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "backward", "word");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteWordForward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "forward", "word");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteSoftLineBackward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "backward", "line");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteSoftLineForward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "forward", "line");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteEntireSoftLine") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "backward", "line");
+ startNode = document.getSelection().baseNode;
+ document.getSelection().modify("move", "forward", "line");
+ endNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteHardLineBackward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "backward", "paragraph");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteHardLineForward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "forward", "paragraph");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteContentBackward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "backward", "paragraph");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ } else if (opType == "deleteContentForward") {
+ var sel = EvoSelection.Store(document);
+ document.getSelection().modify("move", "forward", "paragraph");
+ startNode = document.getSelection().baseNode;
+ EvoSelection.Restore(document, sel);
+ }
+
+ record = EvoUndoRedo.StartRecord(EvoUndoRedo.RECORD_KIND_EVENT, opType, startNode, endNode,
EvoEditor.CLAIM_CONTENT_FLAG_SAVE_HTML | EvoEditor.CLAIM_CONTENT_FLAG_USE_PARENT_BLOCK_NODE);
/* Changing format with collapsed selection doesn't change HTML structure immediately */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]