mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Popups: removed an apparently unnecessary test in CloseInactivePopups() that broke Combo boxes inside menus (#272)
This commit is contained in:
		
							
								
								
									
										24
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -3172,7 +3172,7 @@ static void CloseInactivePopups() | ||||
|     if (g.OpenedPopupStack.empty()) | ||||
|         return; | ||||
|  | ||||
|     // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it | ||||
|     // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it. | ||||
|     // Don't close our own child popup windows | ||||
|     int n = 0; | ||||
|     if (g.FocusedWindow) | ||||
| @@ -3184,21 +3184,17 @@ static void CloseInactivePopups() | ||||
|                 continue; | ||||
|             IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); | ||||
|             if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) | ||||
|             { | ||||
|                 if (g.FocusedWindow->RootWindow != popup.Window->RootWindow) | ||||
|                     break; | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 bool has_focus = false; | ||||
|                 for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) | ||||
|                     has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); | ||||
|                 if (!has_focus) | ||||
|                     break; | ||||
|             } | ||||
|                 continue; | ||||
|  | ||||
|             bool has_focus = false; | ||||
|             for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) | ||||
|                 has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); | ||||
|             if (!has_focus) | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
|     g.OpenedPopupStack.resize(n); | ||||
|     if (n < g.OpenedPopupStack.Size)   // This test is not required but it allows to set a useful breakpoint on the line below | ||||
|         g.OpenedPopupStack.resize(n); | ||||
| } | ||||
|  | ||||
| static ImGuiWindow* GetFrontMostModalRootWindow() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user