Add is_valid() check for InputEventKey in CanvasItemEditor.

This commit is contained in:
Eric M 2020-09-17 11:46:04 +10:00
parent efe5c250d5
commit 7941235e06
2 changed files with 17 additions and 15 deletions

View File

@ -479,22 +479,24 @@ void CanvasItemEditor::_unhandled_key_input(const Ref<InputEvent> &p_ev) {
return; return;
} }
if (k->get_keycode() == KEY_CONTROL || k->get_keycode() == KEY_ALT || k->get_keycode() == KEY_SHIFT) { if (k.is_valid()) {
viewport->update(); if (k->get_keycode() == KEY_CONTROL || k->get_keycode() == KEY_ALT || k->get_keycode() == KEY_SHIFT) {
} viewport->update();
}
if (k->is_pressed() && !k->get_control() && !k->is_echo()) { if (k->is_pressed() && !k->get_control() && !k->is_echo()) {
if ((grid_snap_active || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->is_shortcut(p_ev)) { if ((grid_snap_active || show_grid) && multiply_grid_step_shortcut.is_valid() && multiply_grid_step_shortcut->is_shortcut(p_ev)) {
// Multiply the grid size // Multiply the grid size
grid_step_multiplier = MIN(grid_step_multiplier + 1, 12); grid_step_multiplier = MIN(grid_step_multiplier + 1, 12);
viewport->update(); viewport->update();
} else if ((grid_snap_active || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->is_shortcut(p_ev)) { } else if ((grid_snap_active || show_grid) && divide_grid_step_shortcut.is_valid() && divide_grid_step_shortcut->is_shortcut(p_ev)) {
// Divide the grid size // Divide the grid size
Point2 new_grid_step = grid_step * Math::pow(2.0, grid_step_multiplier - 1); Point2 new_grid_step = grid_step * Math::pow(2.0, grid_step_multiplier - 1);
if (new_grid_step.x >= 1.0 && new_grid_step.y >= 1.0) { if (new_grid_step.x >= 1.0 && new_grid_step.y >= 1.0) {
grid_step_multiplier--; grid_step_multiplier--;
}
viewport->update();
} }
viewport->update();
} }
} }
} }

View File

@ -123,7 +123,7 @@ MenuButton::MenuButton() {
set_toggle_mode(true); set_toggle_mode(true);
set_disable_shortcuts(false); set_disable_shortcuts(false);
set_process_unhandled_key_input(true); set_process_unhandled_key_input(true);
set_enabled_focus_mode(FOCUS_NONE); set_focus_mode(FOCUS_NONE);
set_action_mode(ACTION_MODE_BUTTON_PRESS); set_action_mode(ACTION_MODE_BUTTON_PRESS);
popup = memnew(PopupMenu); popup = memnew(PopupMenu);