|
@@ -99,6 +99,14 @@ bool LineEdit::is_editing() const {
|
|
|
return editing;
|
|
|
}
|
|
|
|
|
|
+void LineEdit::set_keep_editing_on_text_submit(bool p_enabled) {
|
|
|
+ keep_editing_on_text_submit = p_enabled;
|
|
|
+}
|
|
|
+
|
|
|
+bool LineEdit::is_editing_kept_on_text_submit() const {
|
|
|
+ return keep_editing_on_text_submit;
|
|
|
+}
|
|
|
+
|
|
|
void LineEdit::_close_ime_window() {
|
|
|
DisplayServer::WindowID wid = get_window() ? get_window()->get_window_id() : DisplayServer::INVALID_WINDOW_ID;
|
|
|
if (wid == DisplayServer::INVALID_WINDOW_ID || !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_IME)) {
|
|
@@ -773,7 +781,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
|
|
|
DisplayServer::get_singleton()->virtual_keyboard_hide();
|
|
|
}
|
|
|
|
|
|
- if (editing) {
|
|
|
+ if (editing && !keep_editing_on_text_submit) {
|
|
|
unedit();
|
|
|
emit_signal(SNAME("editing_toggled"), false);
|
|
|
}
|
|
@@ -2791,6 +2799,8 @@ void LineEdit::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("edit"), &LineEdit::edit);
|
|
|
ClassDB::bind_method(D_METHOD("unedit"), &LineEdit::unedit);
|
|
|
ClassDB::bind_method(D_METHOD("is_editing"), &LineEdit::is_editing);
|
|
|
+ ClassDB::bind_method(D_METHOD("set_keep_editing_on_text_submit", "enable"), &LineEdit::set_keep_editing_on_text_submit);
|
|
|
+ ClassDB::bind_method(D_METHOD("is_editing_kept_on_text_submit"), &LineEdit::is_editing_kept_on_text_submit);
|
|
|
ClassDB::bind_method(D_METHOD("clear"), &LineEdit::clear);
|
|
|
ClassDB::bind_method(D_METHOD("select", "from", "to"), &LineEdit::select, DEFVAL(0), DEFVAL(-1));
|
|
|
ClassDB::bind_method(D_METHOD("select_all"), &LineEdit::select_all);
|
|
@@ -2921,6 +2931,7 @@ void LineEdit::_bind_methods() {
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "alignment", PROPERTY_HINT_ENUM, "Left,Center,Right,Fill"), "set_horizontal_alignment", "get_horizontal_alignment");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_length", PROPERTY_HINT_RANGE, "0,1000,1,or_greater"), "set_max_length", "get_max_length");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editable"), "set_editable", "is_editable");
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keep_editing_on_text_submit"), "set_keep_editing_on_text_submit", "is_editing_kept_on_text_submit");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "expand_to_text_length"), "set_expand_to_text_length_enabled", "is_expand_to_text_length_enabled");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "context_menu_enabled"), "set_context_menu_enabled", "is_context_menu_enabled");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "virtual_keyboard_enabled"), "set_virtual_keyboard_enabled", "is_virtual_keyboard_enabled");
|