mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51: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()) |     if (g.OpenedPopupStack.empty()) | ||||||
|         return; |         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 |     // Don't close our own child popup windows | ||||||
|     int n = 0; |     int n = 0; | ||||||
|     if (g.FocusedWindow) |     if (g.FocusedWindow) | ||||||
| @@ -3184,21 +3184,17 @@ static void CloseInactivePopups() | |||||||
|                 continue; |                 continue; | ||||||
|             IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); |             IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); | ||||||
|             if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) |             if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) | ||||||
|             { |                 continue; | ||||||
|                 if (g.FocusedWindow->RootWindow != popup.Window->RootWindow) |  | ||||||
|                     break; |             bool has_focus = false; | ||||||
|             } |             for (int m = n; m < g.OpenedPopupStack.Size && !has_focus; m++) | ||||||
|             else |                 has_focus = (g.OpenedPopupStack[m].Window && g.OpenedPopupStack[m].Window->RootWindow == g.FocusedWindow->RootWindow); | ||||||
|             { |             if (!has_focus) | ||||||
|                 bool has_focus = false; |                 break; | ||||||
|                 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() | static ImGuiWindow* GetFrontMostModalRootWindow() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user