diff options
Diffstat (limited to 'src/Text.cpp')
-rw-r--r-- | src/Text.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Text.cpp b/src/Text.cpp index 0431c4e..2940520 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -60,10 +60,11 @@ namespace QuickMedia { //if(str != this->str) //{ + size_t prev_str_size = this->str.getSize(); this->str = std::move(str); dirty = true; dirtyText = true; - if((int)this->str.getSize() < caretIndex) + if((int)this->str.getSize() < caretIndex || prev_str_size == 0) { caretIndex = this->str.getSize(); dirtyCaret = true; @@ -821,7 +822,7 @@ namespace QuickMedia } else if(event.key.code == sf::Keyboard::Enter) { - if(event.key.shift) + if(event.key.shift && !single_line_edit) { if(caretAtEnd) str += '\n'; @@ -849,7 +850,7 @@ namespace QuickMedia { stringToAdd = sf::Clipboard::getString(); } - else if(event.text.unicode >= 32 || event.text.unicode == 9) // 9 == tab + else if(event.text.unicode >= 32 || (event.text.unicode == 9 && !single_line_edit)) // 9 == tab stringToAdd = event.text.unicode; else return; |