From 6075800789f542076545cc7fa098aac23a1e4479 Mon Sep 17 00:00:00 2001 From: kobewi Date: Fri, 19 Sep 2025 20:44:39 +0200 Subject: [PATCH] Refactor SceneTreeDock context menu separators --- editor/docks/scene_tree_dock.cpp | 80 +++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 26 deletions(-) diff --git a/editor/docks/scene_tree_dock.cpp b/editor/docks/scene_tree_dock.cpp index 66fc27704e2..a93299f66f5 100644 --- a/editor/docks/scene_tree_dock.cpp +++ b/editor/docks/scene_tree_dock.cpp @@ -3810,10 +3810,32 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { return; } + bool section_started = false; + bool section_ended = false; + +// Marks beginning of a new separated section. When used multiple times in a row, only first use has effect. +#define BEGIN_SECTION() \ + { \ + if (section_ended) { \ + section_ended = false; \ + menu->add_separator(); \ + } \ + section_started = true; \ + } +// Marks end of a section. +#define END_SECTION() \ + { \ + if (section_started) { \ + section_ended = true; \ + section_started = false; \ + } \ + } + Ref