Ensure all checks of is_action in the editor which are for 'shortcut' use, check the action exactly.

This commit is contained in:
Eric M
2022-09-24 18:01:02 +10:00
parent f74491fdee
commit 2eda77c682
10 changed files with 46 additions and 46 deletions

View File

@ -143,7 +143,7 @@ void EditorSpinSlider::gui_input(const Ref<InputEvent> &p_event) {
} }
Ref<InputEventKey> k = p_event; Ref<InputEventKey> k = p_event;
if (k.is_valid() && k->is_pressed() && k->is_action("ui_accept")) { if (k.is_valid() && k->is_pressed() && k->is_action("ui_accept", true)) {
_focus_entered(); _focus_entered();
} }
} }

View File

@ -60,7 +60,7 @@ void BaseButton::gui_input(const Ref<InputEvent> &p_event) {
} }
Ref<InputEventMouseButton> mouse_button = p_event; Ref<InputEventMouseButton> mouse_button = p_event;
bool ui_accept = p_event->is_action("ui_accept") && !p_event->is_echo(); bool ui_accept = p_event->is_action("ui_accept", true) && !p_event->is_echo();
bool button_masked = mouse_button.is_valid() && (mouse_button_to_mask(mouse_button->get_button_index()) & button_mask) != MouseButton::NONE; bool button_masked = mouse_button.is_valid() && (mouse_button_to_mask(mouse_button->get_button_index()) & button_mask) != MouseButton::NONE;
if (button_masked || ui_accept) { if (button_masked || ui_accept) {

View File

@ -1385,16 +1385,16 @@ void GraphEdit::gui_input(const Ref<InputEvent> &p_ev) {
} }
if (p_ev->is_pressed()) { if (p_ev->is_pressed()) {
if (p_ev->is_action("ui_graph_duplicate")) { if (p_ev->is_action("ui_graph_duplicate", true)) {
emit_signal(SNAME("duplicate_nodes_request")); emit_signal(SNAME("duplicate_nodes_request"));
accept_event(); accept_event();
} else if (p_ev->is_action("ui_copy")) { } else if (p_ev->is_action("ui_copy", true)) {
emit_signal(SNAME("copy_nodes_request")); emit_signal(SNAME("copy_nodes_request"));
accept_event(); accept_event();
} else if (p_ev->is_action("ui_paste")) { } else if (p_ev->is_action("ui_paste", true)) {
emit_signal(SNAME("paste_nodes_request")); emit_signal(SNAME("paste_nodes_request"));
accept_event(); accept_event();
} else if (p_ev->is_action("ui_graph_delete")) { } else if (p_ev->is_action("ui_graph_delete", true)) {
TypedArray<StringName> nodes; TypedArray<StringName> nodes;
for (int i = 0; i < get_child_count(); i++) { for (int i = 0; i < get_child_count(); i++) {

View File

@ -728,7 +728,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
} }
if (p_event->is_pressed() && items.size() > 0) { if (p_event->is_pressed() && items.size() > 0) {
if (p_event->is_action("ui_up")) { if (p_event->is_action("ui_up", true)) {
if (!search_string.is_empty()) { if (!search_string.is_empty()) {
uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t now = OS::get_singleton()->get_ticks_msec();
uint64_t diff = now - search_time_msec; uint64_t diff = now - search_time_msec;
@ -766,7 +766,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
} }
accept_event(); accept_event();
} }
} else if (p_event->is_action("ui_down")) { } else if (p_event->is_action("ui_down", true)) {
if (!search_string.is_empty()) { if (!search_string.is_empty()) {
uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t now = OS::get_singleton()->get_ticks_msec();
uint64_t diff = now - search_time_msec; uint64_t diff = now - search_time_msec;
@ -803,7 +803,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
} }
accept_event(); accept_event();
} }
} else if (p_event->is_action("ui_page_up")) { } else if (p_event->is_action("ui_page_up", true)) {
search_string = ""; //any mousepress cancels search_string = ""; //any mousepress cancels
for (int i = 4; i > 0; i--) { for (int i = 4; i > 0; i--) {
@ -817,7 +817,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
break; break;
} }
} }
} else if (p_event->is_action("ui_page_down")) { } else if (p_event->is_action("ui_page_down", true)) {
search_string = ""; //any mousepress cancels search_string = ""; //any mousepress cancels
for (int i = 4; i > 0; i--) { for (int i = 4; i > 0; i--) {
@ -832,7 +832,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
break; break;
} }
} }
} else if (p_event->is_action("ui_left")) { } else if (p_event->is_action("ui_left", true)) {
search_string = ""; //any mousepress cancels search_string = ""; //any mousepress cancels
if (current % current_columns != 0) { if (current % current_columns != 0) {
@ -852,7 +852,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
} }
accept_event(); accept_event();
} }
} else if (p_event->is_action("ui_right")) { } else if (p_event->is_action("ui_right", true)) {
search_string = ""; //any mousepress cancels search_string = ""; //any mousepress cancels
if (current % current_columns != (current_columns - 1) && current + 1 < items.size()) { if (current % current_columns != (current_columns - 1) && current + 1 < items.size()) {
@ -872,9 +872,9 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
} }
accept_event(); accept_event();
} }
} else if (p_event->is_action("ui_cancel")) { } else if (p_event->is_action("ui_cancel", true)) {
search_string = ""; search_string = "";
} else if (p_event->is_action("ui_select") && select_mode == SELECT_MULTI) { } else if (p_event->is_action("ui_select", true) && select_mode == SELECT_MULTI) {
if (current >= 0 && current < items.size()) { if (current >= 0 && current < items.size()) {
if (items[current].selectable && !items[current].disabled && !items[current].selected) { if (items[current].selectable && !items[current].disabled && !items[current].selected) {
select(current, false); select(current, false);
@ -884,7 +884,7 @@ void ItemList::gui_input(const Ref<InputEvent> &p_event) {
emit_signal(SNAME("multi_selected"), current, false); emit_signal(SNAME("multi_selected"), current, false);
} }
} }
} else if (p_event->is_action("ui_accept")) { } else if (p_event->is_action("ui_accept", true)) {
search_string = ""; //any mousepress cancels search_string = ""; //any mousepress cancels
if (current >= 0 && current < items.size()) { if (current >= 0 && current < items.size()) {

View File

@ -41,7 +41,7 @@ void MenuBar::gui_input(const Ref<InputEvent> &p_event) {
} }
MutexLock lock(mutex); MutexLock lock(mutex);
if (p_event->is_action("ui_left") && p_event->is_pressed()) { if (p_event->is_action("ui_left", true) && p_event->is_pressed()) {
int new_sel = selected_menu; int new_sel = selected_menu;
int old_sel = (selected_menu < 0) ? 0 : selected_menu; int old_sel = (selected_menu < 0) ? 0 : selected_menu;
do { do {
@ -63,7 +63,7 @@ void MenuBar::gui_input(const Ref<InputEvent> &p_event) {
_open_popup(selected_menu, true); _open_popup(selected_menu, true);
} }
return; return;
} else if (p_event->is_action("ui_right") && p_event->is_pressed()) { } else if (p_event->is_action("ui_right", true) && p_event->is_pressed()) {
int new_sel = selected_menu; int new_sel = selected_menu;
int old_sel = (selected_menu < 0) ? menu_cache.size() - 1 : selected_menu; int old_sel = (selected_menu < 0) ? menu_cache.size() - 1 : selected_menu;
do { do {

View File

@ -273,7 +273,7 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
ERR_FAIL_COND(p_event.is_null()); ERR_FAIL_COND(p_event.is_null());
if (!items.is_empty()) { if (!items.is_empty()) {
if (p_event->is_action("ui_down") && p_event->is_pressed()) { if (p_event->is_action("ui_down", true) && p_event->is_pressed()) {
int search_from = mouse_over + 1; int search_from = mouse_over + 1;
if (search_from >= items.size()) { if (search_from >= items.size()) {
search_from = 0; search_from = 0;
@ -305,7 +305,7 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
} }
} }
} }
} else if (p_event->is_action("ui_up") && p_event->is_pressed()) { } else if (p_event->is_action("ui_up", true) && p_event->is_pressed()) {
int search_from = mouse_over - 1; int search_from = mouse_over - 1;
if (search_from < 0) { if (search_from < 0) {
search_from = items.size() - 1; search_from = items.size() - 1;
@ -337,7 +337,7 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
} }
} }
} }
} else if (p_event->is_action("ui_left") && p_event->is_pressed()) { } else if (p_event->is_action("ui_left", true) && p_event->is_pressed()) {
Node *n = get_parent(); Node *n = get_parent();
if (n) { if (n) {
if (Object::cast_to<PopupMenu>(n)) { if (Object::cast_to<PopupMenu>(n)) {
@ -349,7 +349,7 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
return; return;
} }
} }
} else if (p_event->is_action("ui_right") && p_event->is_pressed()) { } else if (p_event->is_action("ui_right", true) && p_event->is_pressed()) {
if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator && !items[mouse_over].submenu.is_empty() && submenu_over != mouse_over) { if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator && !items[mouse_over].submenu.is_empty() && submenu_over != mouse_over) {
_activate_submenu(mouse_over, true); _activate_submenu(mouse_over, true);
set_input_as_handled(); set_input_as_handled();
@ -361,7 +361,7 @@ void PopupMenu::gui_input(const Ref<InputEvent> &p_event) {
return; return;
} }
} }
} else if (p_event->is_action("ui_accept") && p_event->is_pressed()) { } else if (p_event->is_action("ui_accept", true) && p_event->is_pressed()) {
if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator) { if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator) {
if (!items[mouse_over].submenu.is_empty() && submenu_over != mouse_over) { if (!items[mouse_over].submenu.is_empty() && submenu_over != mouse_over) {
_activate_submenu(mouse_over, true); _activate_submenu(mouse_over, true);

View File

@ -2023,36 +2023,36 @@ void RichTextLabel::gui_input(const Ref<InputEvent> &p_event) {
if (k->is_pressed()) { if (k->is_pressed()) {
bool handled = false; bool handled = false;
if (k->is_action("ui_page_up") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_page_up", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(vscroll->get_value() - vscroll->get_page()); vscroll->set_value(vscroll->get_value() - vscroll->get_page());
handled = true; handled = true;
} }
if (k->is_action("ui_page_down") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_page_down", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(vscroll->get_value() + vscroll->get_page()); vscroll->set_value(vscroll->get_value() + vscroll->get_page());
handled = true; handled = true;
} }
if (k->is_action("ui_up") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_up", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(vscroll->get_value() - theme_cache.normal_font->get_height(theme_cache.normal_font_size)); vscroll->set_value(vscroll->get_value() - theme_cache.normal_font->get_height(theme_cache.normal_font_size));
handled = true; handled = true;
} }
if (k->is_action("ui_down") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_down", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(vscroll->get_value() + theme_cache.normal_font->get_height(theme_cache.normal_font_size)); vscroll->set_value(vscroll->get_value() + theme_cache.normal_font->get_height(theme_cache.normal_font_size));
handled = true; handled = true;
} }
if (k->is_action("ui_home") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_home", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(0); vscroll->set_value(0);
handled = true; handled = true;
} }
if (k->is_action("ui_end") && vscroll->is_visible_in_tree()) { if (k->is_action("ui_end", true) && vscroll->is_visible_in_tree()) {
vscroll->set_value(vscroll->get_max()); vscroll->set_value(vscroll->get_max());
handled = true; handled = true;
} }
if (is_shortcut_keys_enabled()) { if (is_shortcut_keys_enabled()) {
if (k->is_action("ui_text_select_all")) { if (k->is_action("ui_text_select_all", true)) {
select_all(); select_all();
handled = true; handled = true;
} }
if (k->is_action("ui_copy")) { if (k->is_action("ui_copy", true)) {
selection_copy(); selection_copy();
handled = true; handled = true;
} }

View File

@ -183,35 +183,35 @@ void ScrollBar::gui_input(const Ref<InputEvent> &p_event) {
} }
if (p_event->is_pressed()) { if (p_event->is_pressed()) {
if (p_event->is_action("ui_left")) { if (p_event->is_action("ui_left", true)) {
if (orientation != HORIZONTAL) { if (orientation != HORIZONTAL) {
return; return;
} }
set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); set_value(get_value() - (custom_step >= 0 ? custom_step : get_step()));
} else if (p_event->is_action("ui_right")) { } else if (p_event->is_action("ui_right", true)) {
if (orientation != HORIZONTAL) { if (orientation != HORIZONTAL) {
return; return;
} }
set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); set_value(get_value() + (custom_step >= 0 ? custom_step : get_step()));
} else if (p_event->is_action("ui_up")) { } else if (p_event->is_action("ui_up", true)) {
if (orientation != VERTICAL) { if (orientation != VERTICAL) {
return; return;
} }
set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); set_value(get_value() - (custom_step >= 0 ? custom_step : get_step()));
} else if (p_event->is_action("ui_down")) { } else if (p_event->is_action("ui_down", true)) {
if (orientation != VERTICAL) { if (orientation != VERTICAL) {
return; return;
} }
set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); set_value(get_value() + (custom_step >= 0 ? custom_step : get_step()));
} else if (p_event->is_action("ui_home")) { } else if (p_event->is_action("ui_home", true)) {
set_value(get_min()); set_value(get_min());
} else if (p_event->is_action("ui_end")) { } else if (p_event->is_action("ui_end", true)) {
set_value(get_max()); set_value(get_max());
} }
} }

View File

@ -138,10 +138,10 @@ void Slider::gui_input(const Ref<InputEvent> &p_event) {
} }
set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); set_value(get_value() - (custom_step >= 0 ? custom_step : get_step()));
accept_event(); accept_event();
} else if (p_event->is_action("ui_home") && p_event->is_pressed()) { } else if (p_event->is_action("ui_home", true) && p_event->is_pressed()) {
set_value(get_min()); set_value(get_min());
accept_event(); accept_event();
} else if (p_event->is_action("ui_end") && p_event->is_pressed()) { } else if (p_event->is_action("ui_end", true) && p_event->is_pressed()) {
set_value(get_max()); set_value(get_max());
accept_event(); accept_event();
} }

View File

@ -3190,7 +3190,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
Ref<InputEventKey> k = p_event; Ref<InputEventKey> k = p_event;
bool is_command = k.is_valid() && k->is_command_or_control_pressed(); bool is_command = k.is_valid() && k->is_command_or_control_pressed();
if (p_event->is_action("ui_right") && p_event->is_pressed()) { if (p_event->is_action("ui_right", true) && p_event->is_pressed()) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
@ -3208,7 +3208,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
} else { } else {
_go_right(); _go_right();
} }
} else if (p_event->is_action("ui_left") && p_event->is_pressed()) { } else if (p_event->is_action("ui_left", true) && p_event->is_pressed()) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
@ -3228,21 +3228,21 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
_go_left(); _go_left();
} }
} else if (p_event->is_action("ui_up") && p_event->is_pressed() && !is_command) { } else if (p_event->is_action("ui_up", true) && p_event->is_pressed() && !is_command) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
_go_up(); _go_up();
} else if (p_event->is_action("ui_down") && p_event->is_pressed() && !is_command) { } else if (p_event->is_action("ui_down", true) && p_event->is_pressed() && !is_command) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
_go_down(); _go_down();
} else if (p_event->is_action("ui_page_down") && p_event->is_pressed()) { } else if (p_event->is_action("ui_page_down", true) && p_event->is_pressed()) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
@ -3280,7 +3280,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
} }
ensure_cursor_is_visible(); ensure_cursor_is_visible();
} else if (p_event->is_action("ui_page_up") && p_event->is_pressed()) { } else if (p_event->is_action("ui_page_up", true) && p_event->is_pressed()) {
if (!cursor_can_exit_tree) { if (!cursor_can_exit_tree) {
accept_event(); accept_event();
} }
@ -3317,7 +3317,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
prev->select(selected_col); prev->select(selected_col);
} }
ensure_cursor_is_visible(); ensure_cursor_is_visible();
} else if (p_event->is_action("ui_accept") && p_event->is_pressed()) { } else if (p_event->is_action("ui_accept", true) && p_event->is_pressed()) {
if (selected_item) { if (selected_item) {
//bring up editor if possible //bring up editor if possible
if (!edit_selected()) { if (!edit_selected()) {
@ -3326,7 +3326,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
} }
} }
accept_event(); accept_event();
} else if (p_event->is_action("ui_select") && p_event->is_pressed()) { } else if (p_event->is_action("ui_select", true) && p_event->is_pressed()) {
if (select_mode == SELECT_MULTI) { if (select_mode == SELECT_MULTI) {
if (!selected_item) { if (!selected_item) {
return; return;