Merge pull request #40469 from nekomatata/virtual-keyboard-enter-fixes-3.2

[3.2] Fix Return key events in LineEdit & TextEdit on Android
This commit is contained in:
Rémi Verschelde
2020-07-26 20:26:02 +02:00
committed by GitHub
18 changed files with 49 additions and 30 deletions

View File

@ -129,9 +129,9 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if (OS::get_singleton()->has_virtual_keyboard() && virtual_keyboard_enabled) {
if (selection.enabled) {
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length, selection.begin, selection.end);
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), false, max_length, selection.begin, selection.end);
} else {
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length, cursor_pos);
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), false, max_length, cursor_pos);
}
}
}
@ -326,6 +326,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if (OS::get_singleton()->has_virtual_keyboard() && virtual_keyboard_enabled)
OS::get_singleton()->hide_virtual_keyboard();
return;
} break;
case KEY_BACKSPACE: {
@ -932,9 +933,9 @@ void LineEdit::_notification(int p_what) {
if (OS::get_singleton()->has_virtual_keyboard() && virtual_keyboard_enabled) {
if (selection.enabled) {
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length, selection.begin, selection.end);
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), false, max_length, selection.begin, selection.end);
} else {
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length, cursor_pos);
OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), false, max_length, cursor_pos);
}
}
} break;

View File

@ -1741,7 +1741,7 @@ void TextEdit::_notification(int p_what) {
OS::get_singleton()->set_ime_position(get_global_position() + cursor_pos);
if (OS::get_singleton()->has_virtual_keyboard())
OS::get_singleton()->show_virtual_keyboard(get_text(), get_global_rect());
OS::get_singleton()->show_virtual_keyboard(get_text(), get_global_rect(), true);
} break;
case NOTIFICATION_FOCUS_EXIT: {