mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Internal: Storing flags for NextWindowData so that we can clear everything with a single write and remove dummy condition fields.
This commit is contained in:
		@@ -1350,8 +1350,8 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboF
 | 
			
		||||
{
 | 
			
		||||
    // Always consume the SetNextWindowSizeConstraint() call in our early return paths
 | 
			
		||||
    ImGuiContext& g = *GImGui;
 | 
			
		||||
    ImGuiCond backup_next_window_size_constraint = g.NextWindowData.SizeConstraintCond;
 | 
			
		||||
    g.NextWindowData.SizeConstraintCond = 0;
 | 
			
		||||
    bool has_window_size_constraint = (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSizeConstraint) != 0;
 | 
			
		||||
    g.NextWindowData.Flags &= ~ImGuiNextWindowDataFlags_HasSizeConstraint;
 | 
			
		||||
 | 
			
		||||
    ImGuiWindow* window = GetCurrentWindow();
 | 
			
		||||
    if (window->SkipItems)
 | 
			
		||||
@@ -1403,9 +1403,9 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboF
 | 
			
		||||
    if (!popup_open)
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    if (backup_next_window_size_constraint)
 | 
			
		||||
    if (has_window_size_constraint)
 | 
			
		||||
    {
 | 
			
		||||
        g.NextWindowData.SizeConstraintCond = backup_next_window_size_constraint;
 | 
			
		||||
        g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasSizeConstraint;
 | 
			
		||||
        g.NextWindowData.SizeConstraintRect.Min.x = ImMax(g.NextWindowData.SizeConstraintRect.Min.x, w);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
@@ -1495,7 +1495,7 @@ bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(voi
 | 
			
		||||
        items_getter(data, *current_item, &preview_value);
 | 
			
		||||
 | 
			
		||||
    // The old Combo() API exposed "popup_max_height_in_items". The new more general BeginCombo() API doesn't have/need it, but we emulate it here.
 | 
			
		||||
    if (popup_max_height_in_items != -1 && !g.NextWindowData.SizeConstraintCond)
 | 
			
		||||
    if (popup_max_height_in_items != -1 && !(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSizeConstraint))
 | 
			
		||||
        SetNextWindowSizeConstraints(ImVec2(0,0), ImVec2(FLT_MAX, CalcMaxPopupHeightFromItemCount(popup_max_height_in_items)));
 | 
			
		||||
 | 
			
		||||
    if (!BeginCombo(label, preview_value, ImGuiComboFlags_None))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user