mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Allow menu windows from ignoring the style.WindowMinSize values so short menus are not padded. (#1909)
This commit is contained in:
		@@ -34,8 +34,10 @@ HOW TO UPDATE?
 | 
				
			|||||||
-----------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Other Changes:
 | 
					Other Changes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - ArrowButton: Fixed to honor PushButtonRepeat() setting (and internals' ImGuiItemFlags_ButtonRepeat).
 | 
					 - ArrowButton: Fixed to honor PushButtonRepeat() setting (and internals' ImGuiItemFlags_ButtonRepeat).
 | 
				
			||||||
 - ArrowButton: Setup current line text baseline so that ArrowButton() + SameLine() + Text() are aligned properly.
 | 
					 - ArrowButton: Setup current line text baseline so that ArrowButton() + SameLine() + Text() are aligned properly.
 | 
				
			||||||
 | 
					 - Window: Allow menu windows from ignoring the style.WindowMinSize values so short menus are not padded. (#1909)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-----------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -5775,7 +5775,10 @@ static ImVec2 CalcSizeAutoFit(ImGuiWindow* window, const ImVec2& size_contents)
 | 
				
			|||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        // When the window cannot fit all contents (either because of constraints, either because screen is too small): we are growing the size on the other axis to compensate for expected scrollbar. FIXME: Might turn bigger than DisplaySize-WindowPadding.
 | 
					        // When the window cannot fit all contents (either because of constraints, either because screen is too small): we are growing the size on the other axis to compensate for expected scrollbar. FIXME: Might turn bigger than DisplaySize-WindowPadding.
 | 
				
			||||||
        ImVec2 size_auto_fit = ImClamp(size_contents, style.WindowMinSize, ImMax(style.WindowMinSize, g.IO.DisplaySize - g.Style.DisplaySafeAreaPadding * 2.0f));
 | 
					        ImVec2 size_min(0.0f, 0.0f);
 | 
				
			||||||
 | 
					        if (!(window->Flags & ImGuiWindowFlags_ChildMenu))
 | 
				
			||||||
 | 
					            size_min = style.WindowMinSize;
 | 
				
			||||||
 | 
					        ImVec2 size_auto_fit = ImClamp(size_contents, size_min, ImMax(size_min, g.IO.DisplaySize - style.DisplaySafeAreaPadding * 2.0f));
 | 
				
			||||||
        ImVec2 size_auto_fit_after_constraint = CalcSizeAfterConstraint(window, size_auto_fit);
 | 
					        ImVec2 size_auto_fit_after_constraint = CalcSizeAfterConstraint(window, size_auto_fit);
 | 
				
			||||||
        if (size_auto_fit_after_constraint.x < size_contents.x && !(window->Flags & ImGuiWindowFlags_NoScrollbar) && (window->Flags & ImGuiWindowFlags_HorizontalScrollbar))
 | 
					        if (size_auto_fit_after_constraint.x < size_contents.x && !(window->Flags & ImGuiWindowFlags_NoScrollbar) && (window->Flags & ImGuiWindowFlags_HorizontalScrollbar))
 | 
				
			||||||
            size_auto_fit.y += style.ScrollbarSize;
 | 
					            size_auto_fit.y += style.ScrollbarSize;
 | 
				
			||||||
@@ -13877,9 +13880,10 @@ void ImGui::ShowMetricsWindow(bool* p_open)
 | 
				
			|||||||
                ImGuiWindowFlags flags = window->Flags;
 | 
					                ImGuiWindowFlags flags = window->Flags;
 | 
				
			||||||
                NodeDrawList(window, window->DrawList, "DrawList");
 | 
					                NodeDrawList(window, window->DrawList, "DrawList");
 | 
				
			||||||
                ImGui::BulletText("Pos: (%.1f,%.1f), Size: (%.1f,%.1f), SizeContents (%.1f,%.1f)", window->Pos.x, window->Pos.y, window->Size.x, window->Size.y, window->SizeContents.x, window->SizeContents.y);
 | 
					                ImGui::BulletText("Pos: (%.1f,%.1f), Size: (%.1f,%.1f), SizeContents (%.1f,%.1f)", window->Pos.x, window->Pos.y, window->Size.x, window->Size.y, window->SizeContents.x, window->SizeContents.y);
 | 
				
			||||||
                ImGui::BulletText("Flags: 0x%08X (%s%s%s%s%s%s..)", flags,
 | 
					                ImGui::BulletText("Flags: 0x%08X (%s%s%s%s%s%s%s..)", flags,
 | 
				
			||||||
                    (flags & ImGuiWindowFlags_ChildWindow) ? "Child " : "", (flags & ImGuiWindowFlags_Tooltip)   ? "Tooltip "   : "", (flags & ImGuiWindowFlags_Popup) ? "Popup " : "",
 | 
					                    (flags & ImGuiWindowFlags_ChildWindow) ? "Child " : "", (flags & ImGuiWindowFlags_Tooltip)   ? "Tooltip "   : "", (flags & ImGuiWindowFlags_Popup) ? "Popup " : "",
 | 
				
			||||||
                    (flags & ImGuiWindowFlags_Modal)       ? "Modal " : "", (flags & ImGuiWindowFlags_ChildMenu) ? "ChildMenu " : "", (flags & ImGuiWindowFlags_NoSavedSettings) ? "NoSavedSettings " : "");
 | 
					                    (flags & ImGuiWindowFlags_Modal)       ? "Modal " : "", (flags & ImGuiWindowFlags_ChildMenu) ? "ChildMenu " : "", (flags & ImGuiWindowFlags_NoSavedSettings) ? "NoSavedSettings " : "",
 | 
				
			||||||
 | 
					                    (flags & ImGuiWindowFlags_AlwaysAutoResize) ? "AlwaysAutoResize" : "");
 | 
				
			||||||
                ImGui::BulletText("Scroll: (%.2f/%.2f,%.2f/%.2f)", window->Scroll.x, GetScrollMaxX(window), window->Scroll.y, GetScrollMaxY(window));
 | 
					                ImGui::BulletText("Scroll: (%.2f/%.2f,%.2f/%.2f)", window->Scroll.x, GetScrollMaxX(window), window->Scroll.y, GetScrollMaxY(window));
 | 
				
			||||||
                ImGui::BulletText("Active: %d, WriteAccessed: %d", window->Active, window->WriteAccessed);
 | 
					                ImGui::BulletText("Active: %d, WriteAccessed: %d", window->Active, window->WriteAccessed);
 | 
				
			||||||
                ImGui::BulletText("NavLastIds: 0x%08X,0x%08X, NavLayerActiveMask: %X", window->NavLastIds[0], window->NavLastIds[1], window->DC.NavLayerActiveMask);
 | 
					                ImGui::BulletText("NavLastIds: 0x%08X,0x%08X, NavLayerActiveMask: %X", window->NavLastIds[0], window->NavLastIds[1], window->DC.NavLayerActiveMask);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user