Skip to content

Commit 8ab2cf3

Browse files
committed
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.
1 parent 809a982 commit 8ab2cf3

7 files changed

+26
-66
lines changed

editor/code_editor.cpp

+4-16
Original file line numberDiff line numberDiff line change
@@ -122,24 +122,12 @@ void FindReplaceBar::unhandled_input(const Ref<InputEvent> &p_event) {
122122
ERR_FAIL_COND(p_event.is_null());
123123

124124
Ref<InputEventKey> k = p_event;
125-
if (!k.is_valid() || !k->is_pressed()) {
126-
return;
127-
}
128-
129-
Control *focus_owner = get_viewport()->gui_get_focus_owner();
130-
if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
131-
bool accepted = true;
132125

133-
switch (k->get_keycode()) {
134-
case Key::ESCAPE: {
135-
_hide_bar();
136-
} break;
137-
default: {
138-
accepted = false;
139-
} break;
140-
}
126+
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
127+
Control *focus_owner = get_viewport()->gui_get_focus_owner();
141128

142-
if (accepted) {
129+
if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
130+
_hide_bar();
143131
accept_event();
144132
}
145133
}

editor/editor_help.cpp

+4-16
Original file line numberDiff line numberDiff line change
@@ -2698,22 +2698,10 @@ void FindBar::unhandled_input(const Ref<InputEvent> &p_event) {
26982698
ERR_FAIL_COND(p_event.is_null());
26992699

27002700
Ref<InputEventKey> k = p_event;
2701-
if (k.is_valid()) {
2702-
if (k->is_pressed() && (rich_text_label->has_focus() || is_ancestor_of(get_viewport()->gui_get_focus_owner()))) {
2703-
bool accepted = true;
2704-
2705-
switch (k->get_keycode()) {
2706-
case Key::ESCAPE: {
2707-
_hide_bar();
2708-
} break;
2709-
default: {
2710-
accepted = false;
2711-
} break;
2712-
}
2713-
2714-
if (accepted) {
2715-
accept_event();
2716-
}
2701+
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
2702+
if (rich_text_label->has_focus() || is_ancestor_of(get_viewport()->gui_get_focus_owner())) {
2703+
_hide_bar();
2704+
accept_event();
27172705
}
27182706
}
27192707
}

editor/editor_layouts_dialog.cpp

+8-18
Original file line numberDiff line numberDiff line change
@@ -42,25 +42,15 @@ void EditorLayoutsDialog::_line_gui_input(const Ref<InputEvent> &p_event) {
4242
Ref<InputEventKey> k = p_event;
4343

4444
if (k.is_valid()) {
45-
if (!k->is_pressed()) {
46-
return;
47-
}
48-
49-
switch (k->get_keycode()) {
50-
case Key::KP_ENTER:
51-
case Key::ENTER: {
52-
if (get_hide_on_ok()) {
53-
hide();
54-
}
55-
ok_pressed();
56-
set_input_as_handled();
57-
} break;
58-
case Key::ESCAPE: {
45+
if (k->is_action_pressed(SNAME("ui_accept"), false, true)) {
46+
if (get_hide_on_ok()) {
5947
hide();
60-
set_input_as_handled();
61-
} break;
62-
default:
63-
break;
48+
}
49+
ok_pressed();
50+
set_input_as_handled();
51+
} else if (k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
52+
hide();
53+
set_input_as_handled();
6454
}
6555
}
6656
}

editor/plugins/canvas_item_editor_plugin.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2415,7 +2415,7 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) {
24152415
}
24162416
}
24172417

2418-
if (k.is_valid() && k->is_pressed() && k->get_keycode() == Key::ESCAPE && drag_type == DRAG_NONE && tool == TOOL_SELECT) {
2418+
if (k.is_valid() && k->is_action_pressed(SNAME("ui_cancel"), false, true) && drag_type == DRAG_NONE && tool == TOOL_SELECT) {
24192419
// Unselect everything
24202420
editor_selection->clear();
24212421
viewport->queue_redraw();

editor/plugins/theme_editor_plugin.cpp

+7-13
Original file line numberDiff line numberDiff line change
@@ -1834,19 +1834,13 @@ void ThemeItemEditorDialog::_edit_theme_item_gui_input(const Ref<InputEvent> &p_
18341834
return;
18351835
}
18361836

1837-
switch (k->get_keycode()) {
1838-
case Key::KP_ENTER:
1839-
case Key::ENTER: {
1840-
_confirm_edit_theme_item();
1841-
edit_theme_item_dialog->hide();
1842-
edit_theme_item_dialog->set_input_as_handled();
1843-
} break;
1844-
case Key::ESCAPE: {
1845-
edit_theme_item_dialog->hide();
1846-
edit_theme_item_dialog->set_input_as_handled();
1847-
} break;
1848-
default:
1849-
break;
1837+
if (k->is_action_pressed(SNAME("ui_accept"), false, true)) {
1838+
_confirm_edit_theme_item();
1839+
edit_theme_item_dialog->hide();
1840+
edit_theme_item_dialog->set_input_as_handled();
1841+
} else if (k->is_action_pressed(SNAME("ui_cancel"), false, true)) {
1842+
edit_theme_item_dialog->hide();
1843+
edit_theme_item_dialog->set_input_as_handled();
18501844
}
18511845
}
18521846
}

scene/gui/dialogs.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
void AcceptDialog::_input_from_window(const Ref<InputEvent> &p_event) {
4141
Ref<InputEventKey> key = p_event;
42-
if (close_on_escape && key.is_valid() && key->is_pressed() && key->get_keycode() == Key::ESCAPE) {
42+
if (close_on_escape && key.is_valid() && key->is_action_pressed(SNAME("ui_cancel"), false, true)) {
4343
_cancel_pressed();
4444
}
4545
}

scene/gui/popup.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
void Popup::_input_from_window(const Ref<InputEvent> &p_event) {
3838
Ref<InputEventKey> key = p_event;
39-
if (get_flag(FLAG_POPUP) && key.is_valid() && key->is_pressed() && key->get_keycode() == Key::ESCAPE) {
39+
if (get_flag(FLAG_POPUP) && key.is_valid() && key->is_action_pressed(SNAME("ui_cancel"), false, true)) {
4040
_close_pressed();
4141
}
4242
}

0 commit comments

Comments
 (0)