Viewports: Fixed active InputText() from preventing viewports to merge. (#4212)

docking
ocornut 3 years ago
parent 8567a4cca3
commit 007a427e0a

@ -208,6 +208,7 @@ Docking+Viewports Branch:
- Viewports: Fixed a CTRL+TAB crash with viewports enabled when the window list needs to appears in - Viewports: Fixed a CTRL+TAB crash with viewports enabled when the window list needs to appears in
its own viewport (regression from 1.86). (#4023, #787) its own viewport (regression from 1.86). (#4023, #787)
- Viewports: Fixed active InputText() from preventing viewports to merge. (#4212)
- (Breaking) Removed ImGuiPlatformIO::Platform_SetImeInputPos() in favor of newly standardized - (Breaking) Removed ImGuiPlatformIO::Platform_SetImeInputPos() in favor of newly standardized
io.SetPlatformImeDataFn() function. Should not affect more than default backends. io.SetPlatformImeDataFn() function. Should not affect more than default backends.

@ -12925,7 +12925,8 @@ static void ImGui::WindowSelectViewport(ImGuiWindow* window)
{ {
// Merge into host viewport? // Merge into host viewport?
// We cannot test window->ViewportOwned as it set lower in the function. // 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); // Testing (g.ActiveId == 0 || g.ActiveIdAllowOverlap) to avoid merging during a short-term widget interaction. Main intent was to avoid during resize (see #4212)
bool try_to_merge_into_host_viewport = (window->Viewport && window == window->Viewport->Window && (g.ActiveId == 0 || g.ActiveIdAllowOverlap));
if (try_to_merge_into_host_viewport) if (try_to_merge_into_host_viewport)
UpdateTryMergeWindowIntoHostViewports(window); UpdateTryMergeWindowIntoHostViewports(window);
} }

Loading…
Cancel
Save