mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Viewport: Fixes moving child menu viewport (fix 379733a).
				
					
				
			This commit is contained in:
		
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -7503,16 +7503,22 @@ static void ImGui::UpdateSelectWindowViewport(ImGuiWindow* window) | ||||
|         window->Viewport = main_viewport; | ||||
|  | ||||
|     // Mark window as allowed to protrude outside of its viewport and into the current monitor | ||||
|     // We need to take account of the possibility that mouse may become invalid. | ||||
|     if (flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) | ||||
|     { | ||||
|         // We need to take account of the possibility that mouse may become invalid. | ||||
|         // Popups/Tooltip always set ViewportAllowPlatformMonitorExtend so GetWindowAllowedExtentRect() will return full monitor bounds. | ||||
|         ImVec2 mouse_ref = (flags & ImGuiWindowFlags_Tooltip) ? g.IO.MousePos : g.CurrentPopupStack.back().OpenMousePos; | ||||
|         bool use_mouse_ref = (g.NavDisableHighlight || !g.NavDisableMouseHover || !g.NavWindow); | ||||
|         bool mouse_valid = IsMousePosValid(&mouse_ref); | ||||
|         if ((window->Appearing || (flags & ImGuiWindowFlags_Tooltip)) && (!use_mouse_ref || mouse_valid)) | ||||
|             window->ViewportAllowPlatformMonitorExtend = FindPlatformMonitorForPos((use_mouse_ref && mouse_valid) ? mouse_ref : NavCalcPreferredRefPos()); | ||||
|         else  | ||||
|             window->ViewportAllowPlatformMonitorExtend = window->Viewport->PlatformMonitor; | ||||
|     } | ||||
|     if (window->ViewportAllowPlatformMonitorExtend < 0 && (flags & ImGuiWindowFlags_ChildWindow) == 0) | ||||
|  | ||||
|     // Regular (non-child, non-popup) windows by default are also allowed to protrude | ||||
|     // Child windows are kept contained within their parent. | ||||
|     else if (window->ViewportAllowPlatformMonitorExtend < 0 && (flags & ImGuiWindowFlags_ChildWindow) == 0) | ||||
|         window->ViewportAllowPlatformMonitorExtend = window->Viewport->PlatformMonitor; | ||||
|  | ||||
|     // Update flags | ||||
|   | ||||
		Reference in New Issue
	
	Block a user