diff options
author | Stefan Dombrowski <stefan@uni-bonn.de> | 2010-08-31 23:15:04 +0200 |
---|---|---|
committer | Stefan Dombrowski <stefan@uni-bonn.de> | 2010-08-31 23:15:04 +0200 |
commit | fe08ffb9047bed67474aa8519051a0d4dcab98c5 (patch) | |
tree | 09d913c3259be04d514794cd420a9a450fc4a205 /src/gui/widgets/textfield.cpp | |
parent | f63a221850062da5b676c7dce258405f59486530 (diff) | |
download | mana-fe08ffb9047bed67474aa8519051a0d4dcab98c5.tar.gz mana-fe08ffb9047bed67474aa8519051a0d4dcab98c5.tar.bz2 mana-fe08ffb9047bed67474aa8519051a0d4dcab98c5.tar.xz mana-fe08ffb9047bed67474aa8519051a0d4dcab98c5.zip |
Fixing auto complete and chat history
Reviewed-by: Jaxad0127
Diffstat (limited to 'src/gui/widgets/textfield.cpp')
-rw-r--r-- | src/gui/widgets/textfield.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index 3e02be98..cffda1e3 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -276,10 +276,8 @@ void TextField::keyPressed(gcn::KeyEvent &keyEvent) case Key::ENTER: if (mHistory) { - mHistory->toEnd(); - // If the input is different from previous, put it in the history - if (mHistory->empty() || !mHistory->matchesEntry(getText())) + if (mHistory->empty() || !mHistory->matchesLastEntry(getText())) { mHistory->addEntry(getText()); } @@ -317,23 +315,23 @@ void TextField::autoComplete() { if (mAutoComplete && mText.size() > 0) { - int caretPos = getCaretPosition(); + const int caretPos = getCaretPosition(); int startName = 0; const std::string inputText = getText(); std::string name = inputText.substr(0, caretPos); std::string newName(""); - for (int f = caretPos - 1; f > -1; f --) + for (int f = caretPos - 1; f > -1; f--) { if (isWordSeparator(inputText[f])) { startName = f + 1; - name = inputText.substr(f + 1, caretPos - f); + name = inputText.substr(f + 1, caretPos - startName); break; } } - if (caretPos - 1 + 1 != startName) + if (caretPos == startName) return; @@ -375,11 +373,7 @@ void TextField::autoComplete() + inputText.substr(caretPos, inputText.length() - caretPos)); - if (startName > 0) - setCaretPosition(caretPos - name.length() + newName.length() - + 1); - else - setCaretPosition(caretPos - name.length() + newName.length()); + setCaretPosition(caretPos - name.length() + newName.length()); } } } |