aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/CellBuffer.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2014-07-18 23:37:23 +1000
committerNeil <nyamatongwe@gmail.com>2014-07-18 23:37:23 +1000
commit1472b33e83897ba443974f838fb92fe720118d42 (patch)
tree9c756a4b25bb8b32082cee01f5d6b1c39e7930bb /src/CellBuffer.h
parent5e13b48636a6442af501bdbf1fe4afd7d008e489 (diff)
downloadscintilla-mirror-1472b33e83897ba443974f838fb92fe720118d42.tar.gz
Added the tentative undo feature. This is useful for IMEs that want to display
and manipulate a character being composed, but may then commit or remove it leaving no history in undo of the intermediate forms.
Diffstat (limited to 'src/CellBuffer.h')
-rw-r--r--src/CellBuffer.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/CellBuffer.h b/src/CellBuffer.h
index f07b45983..5e4fc7c8c 100644
--- a/src/CellBuffer.h
+++ b/src/CellBuffer.h
@@ -95,6 +95,7 @@ class UndoHistory {
int currentAction;
int undoSequenceDepth;
int savePoint;
+ int tentativePoint;
void EnsureUndoRoom();
@@ -117,6 +118,12 @@ public:
void SetSavePoint();
bool IsSavePoint() const;
+ // Tentative actions are used for input composition so that it can be undone cleanly
+ void TentativeStart();
+ void TentativeCommit();
+ bool TentativeActive() const { return tentativePoint >= 0; }
+ int TentativeSteps();
+
/// To perform an undo, StartUndo is called to retrieve the number of steps, then UndoStep is
/// called that many times. Similarly for redo.
bool CanUndo() const;
@@ -193,6 +200,11 @@ public:
void SetSavePoint();
bool IsSavePoint() const;
+ void TentativeStart();
+ void TentativeCommit();
+ bool TentativeActive() const;
+ int TentativeSteps();
+
bool SetUndoCollection(bool collectUndo);
bool IsCollectingUndo() const;
void BeginUndoAction();