@@ -160,6 +160,8 @@ namespace windows
160160
161161 if (ImGui::IsItemClicked ())
162162 {
163+ ImGui::SetScrollHereY ();
164+
163165 if (ImGui::IsMouseDoubleClicked (0 ))
164166 {
165167 componentToOpen.insert (object);
@@ -242,8 +244,10 @@ namespace windows
242244
243245 static ImGuiTableFlags flags = ImGuiTableFlags_ScrollY | ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody;
244246
245- ImVec2 outer_size = ImVec2 (0 .0f , static_cast <bool >(clickedObject) * ImGui::GetTextLineHeightWithSpacing () * 20 );
246- if (ImGui::BeginTable (" sceneGraphTable" , 2 , flags, outer_size))
247+ static float tableHeight = 0.0 ;
248+ ImVec2 outer_size = ImVec2 (0 .0f , tableHeight);
249+ ImGui::BeginChild (" tableRegion" , outer_size, ImGuiChildFlags_None);
250+ if (ImGui::BeginTable (" sceneGraphTable" , 2 , flags))
247251 {
248252 ImGui::TableSetupScrollFreeze (0 , 1 ); // Make top row always visible
249253 ImGui::TableSetupColumn (" Name" , ImGuiTableColumnFlags_NoHide);
@@ -254,12 +258,23 @@ namespace windows
254258
255259 ImGui::EndTable ();
256260 }
261+ ImGui::EndChild ();
262+ ImGui::InvisibleButton (" ##splitter" , ImVec2 (-1 , 2 .0f )); // Invisible button used to adjust scene graoh table vertical height
263+ if (ImGui::IsItemHovered ())
264+ ImGui::SetMouseCursor (ImGuiMouseCursor_ResizeNS);
265+ if (ImGui::IsItemActive ())
266+ {
267+ // Mouse drag adjusts height
268+ tableHeight += ImGui::GetIO ().MouseDelta .y ;
269+ if (tableHeight < (ImGui::GetTextLineHeightWithSpacing () * 10 .0f )) tableHeight = ImGui::GetTextLineHeightWithSpacing () * 10 .0f ; // min clamp
270+ }
257271
258272 static bool areDataDisplayed;
259273 areDataDisplayed = clickedObject != nullptr ;
260274 if (clickedObject != nullptr )
261275 {
262- ImGui::Separator ();
276+ if (tableHeight == 0 ) tableHeight = static_cast <bool >(clickedObject) * ImGui::GetTextLineHeightWithSpacing () * 30 ;
277+ // ImGui::Separator();
263278 ImGui::SetNextItemOpen (true , ImGuiCond_Appearing);
264279 if (ImGui::CollapsingHeader ((ICON_FA_CUBE " " + clickedObject->getName ()).c_str (), &areDataDisplayed))
265280 {
0 commit comments