From 6e7d78f6421100f2ed96b262d5fde3b7f84045df Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 17 Apr 2013 12:56:44 +1000 Subject: Restore undo collection after sequence of composition actions by only remembering undo collection state when switching to composition, not when composition changed. --- cocoa/ScintillaView.mm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'cocoa') diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm index 4fa6dcb54..0b8fddf56 100644 --- a/cocoa/ScintillaView.mm +++ b/cocoa/ScintillaView.mm @@ -403,14 +403,16 @@ static NSCursor *cursorFromEnum(Window::Cursor cursor) } else { + // Switching into composition so remember if collecting undo. + undoCollectionWasActive = [mOwner getGeneralProperty: SCI_GETUNDOCOLLECTION] != 0; + + // Keep Scintilla from collecting undo actions for the composition task. + [mOwner setGeneralProperty: SCI_SETUNDOCOLLECTION value: 0]; + // Ensure only a single selection mOwner.backend->SelectOnlyMainSelection(); } - // Keep Scintilla from collecting undo actions for the composition task. - undoCollectionWasActive = [mOwner getGeneralProperty: SCI_GETUNDOCOLLECTION] != 0; - [mOwner setGeneralProperty: SCI_SETUNDOCOLLECTION value: 0]; - // Note: Scintilla internally works almost always with bytes instead chars, so we need to take // this into account when determining selection ranges and such. std::string raw_text = [newText UTF8String]; -- cgit v1.2.3