|
@@ -1099,6 +1099,7 @@ static void UpdateViewportsNewFrame();
|
|
|
static void UpdateViewportsEndFrame();
|
|
|
static void UpdateSelectWindowViewport(ImGuiWindow* window);
|
|
|
static bool UpdateTryMergeWindowIntoHostViewport(ImGuiWindow* window, ImGuiViewportP* host_viewport);
|
|
|
+static bool UpdateTryMergeWindowIntoHostViewports(ImGuiWindow* window);
|
|
|
static void SetCurrentViewport(ImGuiWindow* window, ImGuiViewportP* viewport);
|
|
|
static bool GetWindowAlwaysWantOwnViewport(ImGuiWindow* window);
|
|
|
static int FindPlatformMonitorForPos(const ImVec2& pos);
|
|
@@ -10233,6 +10234,12 @@ static bool ImGui::UpdateTryMergeWindowIntoHostViewport(ImGuiWindow* window, ImG
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+static bool ImGui::UpdateTryMergeWindowIntoHostViewports(ImGuiWindow* window)
|
|
|
+{
|
|
|
+ ImGuiContext& g = *GImGui;
|
|
|
+ return UpdateTryMergeWindowIntoHostViewport(window, g.Viewports[0]);
|
|
|
+}
|
|
|
+
|
|
|
// Scale all windows (position, size). Use when e.g. changing DPI. (This is a lossy operation!)
|
|
|
void ImGui::ScaleWindowsInViewport(ImGuiViewportP* viewport, float scale)
|
|
|
{
|
|
@@ -10584,7 +10591,7 @@ static void ImGui::UpdateSelectWindowViewport(ImGuiWindow* window)
|
|
|
// We cannot test window->ViewportOwned as it set lower in the function.
|
|
|
bool try_to_merge_into_host_viewport = (window->Viewport && window == window->Viewport->Window && g.ActiveId == 0);
|
|
|
if (try_to_merge_into_host_viewport)
|
|
|
- UpdateTryMergeWindowIntoHostViewport(window, g.Viewports[0]);
|
|
|
+ UpdateTryMergeWindowIntoHostViewports(window);
|
|
|
}
|
|
|
|
|
|
// Fallback to default viewport
|
|
@@ -10618,7 +10625,7 @@ static void ImGui::UpdateSelectWindowViewport(ImGuiWindow* window)
|
|
|
window->Viewport->ID = window->ID;
|
|
|
window->Viewport->LastNameHash = 0;
|
|
|
}
|
|
|
- else if (!UpdateTryMergeWindowIntoHostViewport(window, g.Viewports[0])) // Merge?
|
|
|
+ else if (!UpdateTryMergeWindowIntoHostViewports(window)) // Merge?
|
|
|
{
|
|
|
// New viewport
|
|
|
window->Viewport = AddUpdateViewport(window, window->ID, window->Pos, window->Size, ImGuiViewportFlags_NoFocusOnAppearing);
|