summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorPaulb23 <p_batty@hotmail.co.uk>2016-04-03 15:21:16 +0100
committerPaulb23 <p_batty@hotmail.co.uk>2016-04-03 15:21:16 +0100
commita984adb5a6bde78c3b3c7681ad529cf22f2452ec (patch)
treee9ecfd6358f1c0521da3469d05aa8662622450c8 /scene/gui
parentfe779d4386ac32431ed85b6248b05f018a5db86e (diff)
Fixed insert mode interaction with auto complete
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/text_edit.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 325203580e..4be8dd850c 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1596,7 +1596,22 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
if(auto_brace_completion_enabled && _is_pair_symbol(chr[0])) {
_consume_pair_symbol(chr[0]);
} else {
+
+ // remove the old character if in insert mode
+ if (insert_mode) {
+ _begin_compex_operation();
+
+ // make sure we don't try and remove empty space
+ if (cursor.column < get_line(cursor.line).length()) {
+ _remove_text(cursor.line, cursor.column, cursor.line, cursor.column + 1);
+ }
+ }
+
_insert_text_at_cursor(chr);
+
+ if (insert_mode) {
+ _end_compex_operation();
+ }
}
}