From 0bde84f3058be2b09595bff50bc7f4cac0cdc1f5 Mon Sep 17 00:00:00 2001 From: ajreckof Date: Sun, 14 Apr 2024 12:56:49 +0200 Subject: [PATCH] Fix going forward backward in editor selection history. --- editor/scene_tree_dock.cpp | 6 +++++- editor/scene_tree_dock.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 67c269aa80b7..13de4c9b187a 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -75,7 +75,7 @@ void SceneTreeDock::_quick_open() { } void SceneTreeDock::_inspect_hovered_node() { - scene_tree->set_selected(node_hovered_now); + select_node_hovered_at_end_of_drag = true; scene_tree->set_marked(node_hovered_now); Tree *tree = scene_tree->get_scene_tree(); TreeItem *item = tree->get_item_at_position(tree->get_local_mouse_position()); @@ -1588,6 +1588,10 @@ void SceneTreeDock::_notification(int p_what) { case NOTIFICATION_DRAG_END: { _reset_hovering_timer(); + if (select_node_hovered_at_end_of_drag) { + scene_tree->set_selected(node_hovered_now); + select_node_hovered_at_end_of_drag = false; + } } break; } } diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index 21e1b00f931d..d8ab47ef289c 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -241,6 +241,7 @@ class SceneTreeDock : public VBoxContainer { Timer *inspect_hovered_node_delay = nullptr; Node *node_hovered_now = nullptr; Node *node_hovered_previously = nullptr; + bool select_node_hovered_at_end_of_drag = false; virtual void input(const Ref &p_event) override; virtual void shortcut_input(const Ref &p_event) override;