diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-05-23 23:25:57 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-05-23 23:25:57 +0200 |
commit | bceebdf21261a5d33da9c13aca99c28edd7bc777 (patch) | |
tree | 09af57d8ab0c6dba5ca7c41a2037c1c22aa2a054 | |
parent | 73fdc30783dc09817d2fab6406d95accd489786a (diff) | |
parent | 32e29cc24b92195791b55c533ea8145ef026c673 (diff) | |
download | redot-engine-bceebdf21261a5d33da9c13aca99c28edd7bc777.tar.gz |
Merge pull request #92275 from ajreckof/fix-bounding-box-glitch-
Fix bounding box glitch
-rw-r--r-- | editor/scene_tree_dock.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index ec0380f964..f90fa7603f 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -3104,7 +3104,23 @@ void SceneTreeDock::set_edited_scene(Node *p_scene) { edited_scene = p_scene; } +static bool _is_same_selection(const Vector<Node *> &p_first, const List<Node *> &p_second) { + if (p_first.size() != p_second.size()) { + return false; + } + for (Node *node : p_second) { + if (!p_first.has(node)) { + return false; + } + } + return true; +} + void SceneTreeDock::set_selection(const Vector<Node *> &p_nodes) { + // If the nodes selected are the same independently of order then return early. + if (_is_same_selection(p_nodes, editor_selection->get_full_selected_node_list())) { + return; + } editor_selection->clear(); for (Node *node : p_nodes) { editor_selection->add_node(node); |