|
@@ -3555,22 +3555,25 @@ static void ImGui::UpdateViewports()
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // Apply Position and Size (from Platform Window to ImGui) if requested.
|
|
|
- // We do it early in the frame instead of waiting for UpdatePlatformWindows() to avoid a frame of lag when moving/resizing using OS facilities.
|
|
|
- if (viewport->PlatformRequestMove)
|
|
|
- viewport->Pos = g.PlatformIO.Platform_GetWindowPos(viewport);
|
|
|
- if (viewport->PlatformRequestResize)
|
|
|
- viewport->Size = g.PlatformIO.Platform_GetWindowSize(viewport);
|
|
|
-
|
|
|
- // Translate imgui windows when a Host Viewport has been moved
|
|
|
- ImVec2 delta = viewport->Pos - viewport->LastPos;
|
|
|
- if ((viewport->Flags & ImGuiViewportFlags_CanHostOtherWindows) && (delta.x != 0.0f || delta.y != 0.0f))
|
|
|
- for (int window_n = 0; window_n < g.Windows.Size; window_n++)
|
|
|
- if (g.Windows[window_n]->Viewport == viewport)
|
|
|
- TranslateWindow(g.Windows[window_n], delta);
|
|
|
+ if ((g.IO.ConfigFlags & ImGuiConfigFlags_ViewportsEnable))
|
|
|
+ {
|
|
|
+ // Apply Position and Size (from Platform Window to ImGui) if requested.
|
|
|
+ // We do it early in the frame instead of waiting for UpdatePlatformWindows() to avoid a frame of lag when moving/resizing using OS facilities.
|
|
|
+ if (viewport->PlatformRequestMove)
|
|
|
+ viewport->Pos = g.PlatformIO.Platform_GetWindowPos(viewport);
|
|
|
+ if (viewport->PlatformRequestResize)
|
|
|
+ viewport->Size = g.PlatformIO.Platform_GetWindowSize(viewport);
|
|
|
|
|
|
- // Update monitor (we'll use this info to clamp windows and save windows lost in a removed monitor)
|
|
|
- viewport->PlatformMonitor = FindPlatformMonitorForRect(viewport->GetRect());
|
|
|
+ // Translate imgui windows when a Host Viewport has been moved
|
|
|
+ ImVec2 delta = viewport->Pos - viewport->LastPos;
|
|
|
+ if ((viewport->Flags & ImGuiViewportFlags_CanHostOtherWindows) && (delta.x != 0.0f || delta.y != 0.0f))
|
|
|
+ for (int window_n = 0; window_n < g.Windows.Size; window_n++)
|
|
|
+ if (g.Windows[window_n]->Viewport == viewport)
|
|
|
+ TranslateWindow(g.Windows[window_n], delta);
|
|
|
+
|
|
|
+ // Update monitor (we'll use this info to clamp windows and save windows lost in a removed monitor)
|
|
|
+ viewport->PlatformMonitor = FindPlatformMonitorForRect(viewport->GetRect());
|
|
|
+ }
|
|
|
|
|
|
// Update DPI scale
|
|
|
float new_dpi_scale;
|