Jinoh Kang : riched20: Add undo control state variable to ME_TextEditor.

Alexandre Julliard julliard at winehq.org
Thu Jul 14 16:59:25 CDT 2022


Module: wine
Branch: master
Commit: 40c54854e61d8adfca21e2fa9260712e4f5453e9
URL:    https://gitlab.winehq.org/wine/wine/-/commit/40c54854e61d8adfca21e2fa9260712e4f5453e9

Author: Jinoh Kang <jinoh.kang.kr at gmail.com>
Date:   Tue Jun 28 00:26:31 2022 +0900

riched20: Add undo control state variable to ME_TextEditor.

Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>

---

 dlls/riched20/editor.c  | 1 +
 dlls/riched20/editor.h  | 2 +-
 dlls/riched20/editstr.h | 7 +++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 3628e51ac9b..a1e0395f24d 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -2973,6 +2973,7 @@ ME_TextEditor *ME_MakeEditor(ITextHost *texthost, BOOL bEmulateVersion10)
   ed->nUndoStackSize = 0;
   ed->nUndoLimit = STACK_SIZE_DEFAULT;
   ed->nUndoMode = umAddToUndo;
+  ed->undo_ctl_state = undoActive;
   ed->nParagraphs = 1;
   ed->nLastSelStart = ed->nLastSelEnd = 0;
   ed->last_sel_start_para = ed->last_sel_end_para = ed->pCursors[0].para;
diff --git a/dlls/riched20/editor.h b/dlls/riched20/editor.h
index 4e8445c99aa..d10ff225335 100644
--- a/dlls/riched20/editor.h
+++ b/dlls/riched20/editor.h
@@ -396,7 +396,7 @@ void ME_EmptyUndoStack(ME_TextEditor *editor) DECLSPEC_HIDDEN;
 
 static inline BOOL editor_undo_ignored(ME_TextEditor *editor)
 {
-    return editor->nUndoMode == umIgnore;
+    return editor->undo_ctl_state != undoActive || editor->nUndoMode == umIgnore;
 }
 
 /* txtsrv.c */
diff --git a/dlls/riched20/editstr.h b/dlls/riched20/editstr.h
index 3b166234f23..db219d7e4df 100644
--- a/dlls/riched20/editstr.h
+++ b/dlls/riched20/editstr.h
@@ -285,6 +285,12 @@ typedef enum {
   umAddBackToUndo
 } ME_UndoMode;
 
+typedef enum {
+  undoActive,
+  undoSuspended,
+  undoDisabled
+} ME_UndoControlState;
+
 enum undo_type
 {
     undo_insert_run,
@@ -402,6 +408,7 @@ typedef struct tagME_TextEditor
   int nUndoStackSize;
   int nUndoLimit;
   ME_UndoMode nUndoMode;
+  ME_UndoControlState undo_ctl_state;
   int nParagraphs;
   LONG nLastSelStart, nLastSelEnd;
   ME_Paragraph *last_sel_start_para, *last_sel_end_para;




More information about the wine-cvs mailing list