summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scene/gui/text_edit.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 233e3bee66..3e4c04873a 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1349,8 +1349,21 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
if (k.mod.shift)
_pre_shift_selection();
-
- cursor_set_column(0);
+
+ // compute whitespace symbols seq length
+ int current_line_whitespace_len = 0;
+ while(current_line_whitespace_len < text[cursor.line].length()) {
+ CharType c = text[cursor.line][current_line_whitespace_len];
+ if(c != '\t' && c != ' ')
+ break;
+ current_line_whitespace_len++;
+ }
+
+ if(cursor_get_column() == current_line_whitespace_len)
+ cursor_set_column(0);
+ else
+ cursor_set_column(current_line_whitespace_len);
+
if (k.mod.command)
cursor_set_line(0);