Use defined key mapping for closing popups and dialogs
As opposed to hardcoding the escape key. Also removed such hardcoding in a few other places as well as a hardcoded enter key in one of the affected input fields.
(cherry picked from commit 8ab2cf3d2d
)
This commit is contained in:
parent
fcafb674af
commit
88475cfba9
|
@ -122,24 +122,12 @@ void FindReplaceBar::unhandled_input(const Ref<InputEvent> &p_event) {
|
|||
ERR_FAIL_COND(p_event.is_null());
|
||||
|
||||
Ref<InputEventKey> k = p_event;
|
||||
if (!k.is_valid() || !k->is_pressed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Control *focus_owner = get_viewport()->gui_get_focus_owner();
|
||||
if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
|
||||
bool accepted = true;
|
||||
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
Control *focus_owner = get_viewport()->gui_get_focus_owner();
|
||||
|
||||
switch (k->get_keycode()) {
|
||||
case Key::ESCAPE: {
|
||||
_hide_bar();
|
||||
} break;
|
||||
default: {
|
||||
accepted = false;
|
||||
} break;
|
||||
}
|
||||
|
||||
if (accepted) {
|
||||
if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
|
||||
_hide_bar();
|
||||
accept_event();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2567,22 +2567,10 @@ void FindBar::unhandled_input(const Ref<InputEvent> &p_event) {
|
|||
ERR_FAIL_COND(p_event.is_null());
|
||||
|
||||
Ref<InputEventKey> k = p_event;
|
||||
if (k.is_valid()) {
|
||||
if (k->is_pressed() && (rich_text_label->has_focus() || is_ancestor_of(get_viewport()->gui_get_focus_owner()))) {
|
||||
bool accepted = true;
|
||||
|
||||
switch (k->get_keycode()) {
|
||||
case Key::ESCAPE: {
|
||||
_hide_bar();
|
||||
} break;
|
||||
default: {
|
||||
accepted = false;
|
||||
} break;
|
||||
}
|
||||
|
||||
if (accepted) {
|
||||
accept_event();
|
||||
}
|
||||
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
if (rich_text_label->has_focus() || is_ancestor_of(get_viewport()->gui_get_focus_owner())) {
|
||||
_hide_bar();
|
||||
accept_event();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,25 +42,15 @@ void EditorLayoutsDialog::_line_gui_input(const Ref<InputEvent> &p_event) {
|
|||
Ref<InputEventKey> k = p_event;
|
||||
|
||||
if (k.is_valid()) {
|
||||
if (!k->is_pressed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (k->get_keycode()) {
|
||||
case Key::KP_ENTER:
|
||||
case Key::ENTER: {
|
||||
if (get_hide_on_ok()) {
|
||||
hide();
|
||||
}
|
||||
ok_pressed();
|
||||
set_input_as_handled();
|
||||
} break;
|
||||
case Key::ESCAPE: {
|
||||
if (k->is_action_pressed(SNAME("ui_accept"), false, true)) {
|
||||
if (get_hide_on_ok()) {
|
||||
hide();
|
||||
set_input_as_handled();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
ok_pressed();
|
||||
set_input_as_handled();
|
||||
} else if (k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
hide();
|
||||
set_input_as_handled();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2413,7 +2413,7 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) {
|
|||
}
|
||||
}
|
||||
|
||||
if (k.is_valid() && k->is_pressed() && k->get_keycode() == Key::ESCAPE && drag_type == DRAG_NONE && tool == TOOL_SELECT) {
|
||||
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true) && drag_type == DRAG_NONE && tool == TOOL_SELECT) {
|
||||
// Unselect everything
|
||||
editor_selection->clear();
|
||||
viewport->queue_redraw();
|
||||
|
|
|
@ -1827,19 +1827,13 @@ void ThemeItemEditorDialog::_edit_theme_item_gui_input(const Ref<InputEvent> &p_
|
|||
return;
|
||||
}
|
||||
|
||||
switch (k->get_keycode()) {
|
||||
case Key::KP_ENTER:
|
||||
case Key::ENTER: {
|
||||
_confirm_edit_theme_item();
|
||||
edit_theme_item_dialog->hide();
|
||||
edit_theme_item_dialog->set_input_as_handled();
|
||||
} break;
|
||||
case Key::ESCAPE: {
|
||||
edit_theme_item_dialog->hide();
|
||||
edit_theme_item_dialog->set_input_as_handled();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
if (k->is_action_pressed(SNAME("ui_accept"), false, true)) {
|
||||
_confirm_edit_theme_item();
|
||||
edit_theme_item_dialog->hide();
|
||||
edit_theme_item_dialog->set_input_as_handled();
|
||||
} else if (k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
edit_theme_item_dialog->hide();
|
||||
edit_theme_item_dialog->set_input_as_handled();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
void AcceptDialog::_input_from_window(const Ref<InputEvent> &p_event) {
|
||||
Ref<InputEventKey> key = p_event;
|
||||
if (close_on_escape && key.is_valid() && key->is_pressed() && key->get_keycode() == Key::ESCAPE) {
|
||||
if (close_on_escape && key.is_valid() && key->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
_cancel_pressed();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
void Popup::_input_from_window(const Ref<InputEvent> &p_event) {
|
||||
Ref<InputEventKey> key = p_event;
|
||||
if (get_flag(FLAG_POPUP) && key.is_valid() && key->is_pressed() && key->get_keycode() == Key::ESCAPE) {
|
||||
if (get_flag(FLAG_POPUP) && key.is_valid() && key->is_action_pressed(SNAME("ui_cancel"), false, true)) {
|
||||
_close_pressed();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue