mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Viewport: Added ConfigViewportsNoParent to parent viewport default to NULL and not main viewport. Fix eg.. popups appearing erroneously focusing parent window.
This commit is contained in:
		
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -1145,6 +1145,7 @@ ImGuiIO::ImGuiIO() | ||||
|     DisplayFramebufferScale = ImVec2(1.0f, 1.0f); | ||||
|  | ||||
|     // Miscellaneous configuration options | ||||
|     ConfigViewportsNoParent = false; | ||||
| #ifdef __APPLE__ | ||||
|     ConfigMacOSXBehaviors = true;  // Set Mac OS X style defaults based on __APPLE__ compile time flag | ||||
| #else | ||||
| @@ -5201,7 +5202,11 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|                 viewport_flags |= ImGuiViewportFlags_NoDecoration; | ||||
|  | ||||
|             // We can overwrite viewport flags using ImGuiWindowClass (advanced users) | ||||
|             window->Viewport->ParentViewportId = window->WindowClass.ParentViewportId ? window->WindowClass.ParentViewportId : IMGUI_VIEWPORT_DEFAULT_ID; | ||||
|             // We don't default to the main viewport because. | ||||
|             if (window->WindowClass.ParentViewportId) | ||||
|                 window->Viewport->ParentViewportId = window->WindowClass.ParentViewportId; | ||||
|             else | ||||
|                 window->Viewport->ParentViewportId = g.IO.ConfigViewportsNoParent ? 0 : IMGUI_VIEWPORT_DEFAULT_ID; | ||||
|             if (window->WindowClass.ViewportFlagsOverrideMask) | ||||
|                 viewport_flags = (viewport_flags & ~window->WindowClass.ViewportFlagsOverrideMask) | (window->WindowClass.ViewportFlagsOverrideValue & window->WindowClass.ViewportFlagsOverrideMask); | ||||
|  | ||||
| @@ -5476,6 +5481,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|         { | ||||
|             window->Viewport->PlatformRequestClose = false; | ||||
|             g.NavWindowingToggleLayer = false; // Assume user mapped PlatformRequestClose on ALT-F4 so we disable ALT for menu toggle. False positive not an issue. | ||||
|             //IMGUI_DEBUG_LOG("Window '%s' PlatformRequestClose\n", window->Name); | ||||
|             *p_open = false; | ||||
|         } | ||||
|  | ||||
| @@ -10307,7 +10313,7 @@ void ImGui::ShowMetricsWindow(bool* p_open) | ||||
|         static void NodeViewport(ImGuiViewportP* viewport) | ||||
|         { | ||||
|             ImGui::SetNextTreeNodeOpen(true, ImGuiCond_Once); | ||||
|             if (ImGui::TreeNode((void*)(intptr_t)viewport->ID, "Viewport #%d, ID: 0x%08X, Window: \"%s\"", viewport->Idx, viewport->ID, viewport->Window ? viewport->Window->Name : "N/A")) | ||||
|             if (ImGui::TreeNode((void*)(intptr_t)viewport->ID, "Viewport #%d, ID: 0x%08X, Parent: 0x%08X, Window: \"%s\"", viewport->Idx, viewport->ID, viewport->ParentViewportId, viewport->Window ? viewport->Window->Name : "N/A")) | ||||
|             { | ||||
|                 ImGuiWindowFlags flags = viewport->Flags; | ||||
|                 ImGui::BulletText("Pos: (%.0f,%.0f), Size: (%.0f,%.0f), Monitor: %d, DpiScale: %.0f%%", viewport->Pos.x, viewport->Pos.y, viewport->Size.x, viewport->Size.y, viewport->PlatformMonitor, viewport->DpiScale * 100.0f); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user