diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ScintillaBase.cxx | 19 | ||||
-rw-r--r-- | src/ScintillaBase.h | 2 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0dabb5393..617cef26f 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -64,11 +64,18 @@ void ScintillaBase::RefreshColourPalette(Palette &pal, bool want) { } void ScintillaBase::AddCharUTF(char *s, unsigned int len, bool treatAsDBCS) { - bool acActiveBeforeCharAdded = ac.Active(); - if (!acActiveBeforeCharAdded || !ac.IsFillUpChar(*s)) + bool isFillUp = ac.Active() && ac.IsFillUpChar(*s); + if (!isFillUp) { Editor::AddCharUTF(s, len, treatAsDBCS); - if (acActiveBeforeCharAdded) + } + if (ac.Active()) { AutoCompleteChanged(s[0]); + // For fill ups add the character after the autocompletion has + // triggered so containers see the key so can display a calltip. + if (isFillUp) { + Editor::AddCharUTF(s, len, treatAsDBCS); + } + } } void ScintillaBase::Command(int cmdId) { @@ -278,7 +285,7 @@ void ScintillaBase::AutoCompleteMoveToCurrentWord() { void ScintillaBase::AutoCompleteChanged(char ch) { if (ac.IsFillUpChar(ch)) { - AutoCompleteCompleted(ch); + AutoCompleteCompleted(); } else if (currentPos <= ac.posStart - ac.startLen) { ac.Cancel(); } else if (ac.cancelAtStartPos && currentPos <= ac.posStart) { @@ -290,7 +297,7 @@ void ScintillaBase::AutoCompleteChanged(char ch) { } } -void ScintillaBase::AutoCompleteCompleted(char fillUp/*='\0'*/) { +void ScintillaBase::AutoCompleteCompleted() { int item = ac.lb.GetSelection(); char selected[1000]; if (item != -1) { @@ -323,8 +330,6 @@ void ScintillaBase::AutoCompleteCompleted(char fillUp/*='\0'*/) { SetEmptySelection(ac.posStart); if (item != -1) { SString piece = selected; - if (fillUp) - piece += fillUp; pdoc->InsertString(firstPos, piece.c_str()); SetEmptySelection(firstPos + piece.length()); } diff --git a/src/ScintillaBase.h b/src/ScintillaBase.h index 7e3887c15..28c089edd 100644 --- a/src/ScintillaBase.h +++ b/src/ScintillaBase.h @@ -66,7 +66,7 @@ protected: void AutoCompleteCancel(); void AutoCompleteMove(int delta); void AutoCompleteChanged(char ch=0); - void AutoCompleteCompleted(char fillUp='\0'); + void AutoCompleteCompleted(); void AutoCompleteMoveToCurrentWord(); static void AutoCompleteDoubleClick(void* p); |