|
@@ -53,6 +53,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
|
|
|
|
|
|
if (b.is_valid()) {
|
|
if (b.is_valid()) {
|
|
if (b->is_pressed() && b->get_button_index() == BUTTON_RIGHT && context_menu_enabled) {
|
|
if (b->is_pressed() && b->get_button_index() == BUTTON_RIGHT && context_menu_enabled) {
|
|
|
|
+ popup_show = true;
|
|
if (editable) {
|
|
if (editable) {
|
|
menu->set_item_disabled(menu->get_item_index(MENU_UNDO), !has_undo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_UNDO), !has_undo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_REDO), !has_redo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_REDO), !has_redo());
|
|
@@ -62,7 +63,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
|
|
menu->set_size(Vector2(1, 1));
|
|
menu->set_size(Vector2(1, 1));
|
|
menu->set_scale(get_global_transform().get_scale());
|
|
menu->set_scale(get_global_transform().get_scale());
|
|
menu->popup();
|
|
menu->popup();
|
|
- grab_focus();
|
|
|
|
accept_event();
|
|
accept_event();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -608,6 +608,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
|
|
} break;
|
|
} break;
|
|
case KEY_MENU: {
|
|
case KEY_MENU: {
|
|
if (context_menu_enabled) {
|
|
if (context_menu_enabled) {
|
|
|
|
+ popup_show = true;
|
|
if (editable) {
|
|
if (editable) {
|
|
menu->set_item_disabled(menu->get_item_index(MENU_UNDO), !has_undo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_UNDO), !has_undo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_REDO), !has_redo());
|
|
menu->set_item_disabled(menu->get_item_index(MENU_REDO), !has_redo());
|
|
@@ -1040,9 +1041,10 @@ void LineEdit::_notification(int p_what) {
|
|
OS::get_singleton()->hide_virtual_keyboard();
|
|
OS::get_singleton()->hide_virtual_keyboard();
|
|
}
|
|
}
|
|
|
|
|
|
- if (deselect_on_focus_loss_enabled) {
|
|
|
|
|
|
+ if (deselect_on_focus_loss_enabled && !popup_show) {
|
|
deselect();
|
|
deselect();
|
|
}
|
|
}
|
|
|
|
+ popup_show = false;
|
|
} break;
|
|
} break;
|
|
case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
|
|
case MainLoop::NOTIFICATION_OS_IME_UPDATE: {
|
|
if (has_focus()) {
|
|
if (has_focus()) {
|