diff options
| author | robfram | 2018-03-13 21:20:59 +0100 |
|---|---|---|
| committer | Hein-Pieter van Braam | 2018-04-28 17:09:55 +0200 |
| commit | d40f40e1c94bd7d663ec8ef40291387669fe86f9 (patch) | |
| tree | 9a20c1bb9328fdfe9c6ba056168655d34986de8f | |
| parent | fa831f022436a8439d3a0198b3e689bef3573ebb (diff) | |
| download | godot-d40f40e1c94bd7d663ec8ef40291387669fe86f9.tar.gz godot-d40f40e1c94bd7d663ec8ef40291387669fe86f9.tar.zst godot-d40f40e1c94bd7d663ec8ef40291387669fe86f9.zip | |
Fix pressing `F3` do both changing to script editor AND find next text
As `KEY_F3` was used both for changing to script editor window and, in
the script editor, for finding the next result in the last search, and
the key event is **not** consumed, the resulting behaviour was similar
to press `F3` twice, first to change to script editor and second to
find the next result of a previous search.
This PR sets the `key_pressed` status of `InputEvent` to `false` if
this event is responsible of an editor change, simulating the
consumption of the event.
Fix #17334
(cherry picked from commit 8939f44f6ac5594348e4d671d121680822bd8dc8)
| -rw-r--r-- | editor/editor_node.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index a4ee0d8d1..1b974edb2 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -188,6 +188,8 @@ void EditorNode::_unhandled_input(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid() && k->is_pressed() && !k->is_echo() && !gui_base->get_viewport()->gui_has_modal_stack()) { + EditorPlugin *old_editor = editor_plugin_screen; + if (ED_IS_SHORTCUT("editor/next_tab", p_event)) { int next_tab = editor_data.get_edited_scene() + 1; next_tab %= editor_data.get_edited_scene_count(); @@ -217,6 +219,10 @@ void EditorNode::_unhandled_input(const Ref<InputEvent> &p_event) { } else if (ED_IS_SHORTCUT("editor/editor_prev", p_event)) { _editor_select_prev(); } + + if (old_editor != editor_plugin_screen) { + get_tree()->set_input_as_handled(); + } } } |
