Viewports: Fixed main viewport size not matching ImDrawData::DisplaySize for one frame during resize when multi-viewports are disabled. (#4900)

docking
ocornut 3 years ago
parent aa86800092
commit 1e14cc5cae

@ -98,6 +98,16 @@ Other changes:
Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117. Note that Linux/Mac still have inconsistent support for multi-viewports. If you want to help see https://github.com/ocornut/imgui/issues/2117.
-----------------------------------------------------------------------
VERSION 1.88 WIP (In Progress)
-----------------------------------------------------------------------
Docking+Viewports Branch:
- Viewports: Fixed main viewport size not matching ImDrawData::DisplaySize for one frame during resize
when multi-viewports are disabled. (#4900)
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.87 (Released 2022-02-07) VERSION 1.87 (Released 2022-02-07)
----------------------------------------------------------------------- -----------------------------------------------------------------------

@ -12903,9 +12903,10 @@ ImGuiViewportP* ImGui::AddUpdateViewport(ImGuiWindow* window, ImGuiID id, const
ImGuiViewportP* viewport = (ImGuiViewportP*)FindViewportByID(id); ImGuiViewportP* viewport = (ImGuiViewportP*)FindViewportByID(id);
if (viewport) if (viewport)
{ {
if (!viewport->PlatformRequestMove) // Always update for main viewport as we are already pulling correct platform pos/size (see #4900)
if (!viewport->PlatformRequestMove || viewport->ID == IMGUI_VIEWPORT_DEFAULT_ID)
viewport->Pos = pos; viewport->Pos = pos;
if (!viewport->PlatformRequestResize) if (!viewport->PlatformRequestResize || viewport->ID == IMGUI_VIEWPORT_DEFAULT_ID)
viewport->Size = size; viewport->Size = size;
viewport->Flags = flags | (viewport->Flags & ImGuiViewportFlags_Minimized); // Preserve existing flags viewport->Flags = flags | (viewport->Flags & ImGuiViewportFlags_Minimized); // Preserve existing flags
} }

Loading…
Cancel
Save