@ -5263,10 +5263,11 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
else if ( ( flags & ImGuiWindowFlags_Tooltip ) ! = 0 & & ! window_pos_set_by_api & & ! window_is_child_tooltip )
window - > Pos = FindBestWindowPosForPopup ( window ) ;
// Late create viewport if we don't fit within our current host viewport.
if ( window - > ViewportAllowPlatformMonitorExtend > = 0 & & ! window - > ViewportOwned & & ! window - > Viewport - > PlatformWindowMinimized )
if ( ! window - > Viewport - > GetRect ( ) . Contains ( window - > Rect ( ) ) )
{
// Late create viewport, based on the assumption that with our calculations, the DPI will be known ahead (same as the DPI of the selection done in UpdateSelectWindowViewport)
// This is based on the assumption that the DPI will be known ahead (same as the DPI of the selection done in UpdateSelectWindowViewport)
//ImGuiViewport* old_viewport = window->Viewport;
window - > Viewport = AddUpdateViewport ( window , window - > ID , window - > Pos , window - > Size , ImGuiViewportFlags_NoFocusOnAppearing ) ;
@ -7413,7 +7414,7 @@ void ImGui::SetCurrentViewport(ImGuiWindow* current_window, ImGuiViewportP* view
/*
if ( viewport - > LastFrameActive < g . FrameCount & & viewport - > Window ! = current_window & & viewport - > Window ! = NULL & & current_window ! = NULL )
{
//IMGUI_DEBUG_LOG(" [%05d] Window '%s' steal Viewport %08X from Window '%s'\n", g.FrameCount, current_window->Name, viewport->ID, viewport->Window->Name);
//IMGUI_DEBUG_LOG(" Window '%s' steal Viewport %08X from Window '%s'\n", g.FrameCount, current_window->Name, viewport->ID, viewport->Window->Name);
viewport - > Window = current_window ;
viewport - > ID = current_window - > ID ;
}
@ -7423,6 +7424,7 @@ void ImGui::SetCurrentViewport(ImGuiWindow* current_window, ImGuiViewportP* view
if ( g . CurrentViewport = = viewport )
return ;
g . CurrentViewport = viewport ;
//IMGUI_DEBUG_LOG("SetCurrentViewport changed '%s' 0x%08X\n", current_window ? current_window->Name : NULL, viewport ? viewport->ID : 0);
// Notify platform layer of viewport changes
// FIXME-DPI: This is only currently used for experimenting with handling of multiple DPI