mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 09:44:29 +00:00 
			
		
		
		
	Fix 25eee91 incorrect assert when ending a child-popup (rarely used but used by sub-nenus)
				
					
				
			This commit is contained in:
		
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -7516,13 +7516,19 @@ bool ImGui::BeginPopupModal(const char* name, bool* p_open, ImGuiWindowFlags fla
 | 
				
			|||||||
void ImGui::EndPopup()
 | 
					void ImGui::EndPopup()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ImGuiContext& g = *GImGui;
 | 
					    ImGuiContext& g = *GImGui;
 | 
				
			||||||
    IM_ASSERT(g.CurrentWindow->Flags & ImGuiWindowFlags_Popup);  // Mismatched BeginPopup()/EndPopup() calls
 | 
					    ImGuiWindow* window = g.CurrentWindow;
 | 
				
			||||||
 | 
					    IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup);  // Mismatched BeginPopup()/EndPopup() calls
 | 
				
			||||||
    IM_ASSERT(g.BeginPopupStack.Size > 0);
 | 
					    IM_ASSERT(g.BeginPopupStack.Size > 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Make all menus and popups wrap around for now, may need to expose that policy.
 | 
					    // Make all menus and popups wrap around for now, may need to expose that policy.
 | 
				
			||||||
    NavMoveRequestTryWrapping(g.CurrentWindow, ImGuiNavMoveFlags_LoopY);
 | 
					    NavMoveRequestTryWrapping(window, ImGuiNavMoveFlags_LoopY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Child-popups don't need to be layed out
 | 
				
			||||||
 | 
					    IM_ASSERT(g.WithinEndChild == false);
 | 
				
			||||||
 | 
					    if (window->Flags & ImGuiWindowFlags_ChildWindow)
 | 
				
			||||||
 | 
					        g.WithinEndChild = true;
 | 
				
			||||||
    End();
 | 
					    End();
 | 
				
			||||||
 | 
					    g.WithinEndChild = false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool ImGui::OpenPopupOnItemClick(const char* str_id, int mouse_button)
 | 
					bool ImGui::OpenPopupOnItemClick(const char* str_id, int mouse_button)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user