diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-11-15 21:32:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-15 21:32:32 +0100 |
commit | 16d350bac4279e11e52a1ef16fffc3297d9dcfed (patch) | |
tree | 9d95339b744f2e0f2bad8894e1e9adc6921079e9 /scene/gui/text_edit.cpp | |
parent | ff4ca81d0bc41d254e2a41e3acb8a514cb1379e6 (diff) | |
parent | 2d8c311c01bf9614bd63f5edd3323d6004c42fb8 (diff) | |
download | redot-engine-16d350bac4279e11e52a1ef16fffc3297d9dcfed.tar.gz |
Merge pull request #43561 from naithar/fix/ios-keyboard_master
[4.0] [iOS] Keyboard input changes
Diffstat (limited to 'scene/gui/text_edit.cpp')
-rw-r--r-- | scene/gui/text_edit.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index cbe6c6bdb9..77ac3d6702 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -1559,7 +1559,19 @@ void TextEdit::_notification(int p_what) { } if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD) && virtual_keyboard_enabled) { - DisplayServer::get_singleton()->virtual_keyboard_show(get_text(), get_global_rect(), true); + String text = _base_get_text(0, 0, selection.selecting_line, selection.selecting_column); + int cursor_start = text.length(); + int cursor_end = -1; + + if (selection.active) { + String selected_text = _base_get_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column); + + if (selected_text.length() > 0) { + cursor_end = cursor_start + selected_text.length(); + } + } + + DisplayServer::get_singleton()->virtual_keyboard_show(get_text(), get_global_rect(), true, -1, cursor_start, cursor_end); } } break; case NOTIFICATION_FOCUS_EXIT: { |