diff options
Diffstat (limited to 'editor/create_dialog.cpp')
-rw-r--r-- | editor/create_dialog.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 204636e128..330ac3b437 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -425,26 +425,19 @@ void CreateDialog::_text_changed(const String &p_newtext) { _update_search(); } -void CreateDialog::_sbox_input(const Ref<InputEvent> &p_ie) { - Ref<InputEventKey> k = p_ie; - if (k.is_valid() && k->is_pressed()) { - switch (k->get_keycode()) { - case Key::UP: - case Key::DOWN: - case Key::PAGEUP: - case Key::PAGEDOWN: { - search_options->gui_input(k); - search_box->accept_event(); - } break; - case Key::SPACE: { - TreeItem *ti = search_options->get_selected(); - if (ti) { - ti->set_collapsed(!ti->is_collapsed()); - } - search_box->accept_event(); - } break; - default: - break; +void CreateDialog::_sbox_input(const Ref<InputEvent> &p_event) { + // Redirect navigational key events to the tree. + Ref<InputEventKey> key = p_event; + if (key.is_valid()) { + if (key->is_action("ui_up", true) || key->is_action("ui_down", true) || key->is_action("ui_page_up") || key->is_action("ui_page_down")) { + search_options->gui_input(key); + search_box->accept_event(); + } else if (key->is_action_pressed("ui_select", true)) { + TreeItem *ti = search_options->get_selected(); + if (ti) { + ti->set_collapsed(!ti->is_collapsed()); + } + search_box->accept_event(); } } } @@ -622,6 +615,7 @@ Variant CreateDialog::get_drag_data_fw(const Point2 &p_point, Control *p_from) { tb->set_flat(true); tb->set_icon(ti->get_icon(0)); tb->set_text(ti->get_text(0)); + tb->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); favorites->set_drag_preview(tb); return d; |