summaryrefslogtreecommitdiffstats
path: root/editor/create_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/create_dialog.cpp')
-rw-r--r--editor/create_dialog.cpp34
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;