mirror of
https://github.com/Drezil/imgui.git
synced 2025-04-06 19:32:45 +00:00
Viewports: Fixed viewport merge code not testing the Minimized flag correctly. (#3118)
This commit is contained in:
parent
c142540705
commit
71eb4034eb
12
imgui.cpp
12
imgui.cpp
@ -3552,7 +3552,7 @@ void ImGui::UpdateMouseMovingWindowEndFrame()
|
|||||||
if (g.NavWindow && g.NavWindow->Appearing)
|
if (g.NavWindow && g.NavWindow->Appearing)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Click on void to focus window and start moving
|
// Click on void to focus window and start moving
|
||||||
// (after we're done with all our widgets, so e.g. clicking on docking tab-bar which have set HoveredId already and not get us here!)
|
// (after we're done with all our widgets, so e.g. clicking on docking tab-bar which have set HoveredId already and not get us here!)
|
||||||
if (g.IO.MouseClicked[0])
|
if (g.IO.MouseClicked[0])
|
||||||
{
|
{
|
||||||
@ -4424,7 +4424,7 @@ void ImGui::EndFrame()
|
|||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
IM_ASSERT(g.Initialized);
|
IM_ASSERT(g.Initialized);
|
||||||
|
|
||||||
// Don't process EndFrame() multiple times.
|
// Don't process EndFrame() multiple times.
|
||||||
if (g.FrameCountEnded == g.FrameCount)
|
if (g.FrameCountEnded == g.FrameCount)
|
||||||
return;
|
return;
|
||||||
@ -10679,7 +10679,11 @@ static bool ImGui::GetWindowAlwaysWantOwnViewport(ImGuiWindow* window)
|
|||||||
static bool ImGui::UpdateTryMergeWindowIntoHostViewport(ImGuiWindow* window, ImGuiViewportP* viewport)
|
static bool ImGui::UpdateTryMergeWindowIntoHostViewport(ImGuiWindow* window, ImGuiViewportP* viewport)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
if (!(viewport->Flags & (ImGuiViewportFlags_CanHostOtherWindows | ImGuiViewportFlags_Minimized)) || window->Viewport == viewport)
|
if (window->Viewport == viewport)
|
||||||
|
return false;
|
||||||
|
if ((viewport->Flags & ImGuiViewportFlags_CanHostOtherWindows) == 0)
|
||||||
|
return false;
|
||||||
|
if ((viewport->Flags & ImGuiViewportFlags_Minimized) != 0)
|
||||||
return false;
|
return false;
|
||||||
if (!viewport->GetMainRect().Contains(window->Rect()))
|
if (!viewport->GetMainRect().Contains(window->Rect()))
|
||||||
return false;
|
return false;
|
||||||
@ -10793,7 +10797,7 @@ static void ImGui::UpdateViewportsNewFrame()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create/update main viewport with current platform position.
|
// Create/update main viewport with current platform position.
|
||||||
// FIXME-VIEWPORT: Size is driven by back-end/user code for backward-compatibility but we should aim to make this more consistent.
|
// FIXME-VIEWPORT: Size is driven by back-end/user code for backward-compatibility but we should aim to make this more consistent.
|
||||||
ImGuiViewportP* main_viewport = g.Viewports[0];
|
ImGuiViewportP* main_viewport = g.Viewports[0];
|
||||||
IM_ASSERT(main_viewport->ID == IMGUI_VIEWPORT_DEFAULT_ID);
|
IM_ASSERT(main_viewport->ID == IMGUI_VIEWPORT_DEFAULT_ID);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user