Browse Source

Windows: Fixed first-time windows appearing in negative coordinates. (#5215, #3414)

Regression added in 6af92b05b
Dima Koltun 3 years ago
parent
commit
b5b704d376
2 changed files with 4 additions and 1 deletions
  1. 3 0
      docs/CHANGELOG.txt
  2. 1 1
      imgui.cpp

+ 3 - 0
docs/CHANGELOG.txt

@@ -54,6 +54,9 @@ Other Changes:
   Not that even thought you shouldn't need to disable io.ConfigInputTrickleEventQueue, you can
   Not that even thought you shouldn't need to disable io.ConfigInputTrickleEventQueue, you can
   technically dynamically change its setting based on the context (e.g. disable only when hovering
   technically dynamically change its setting based on the context (e.g. disable only when hovering
   or interacting with a game/3D view).
   or interacting with a game/3D view).
+- Windows: Fixed first-time windows appearing in negative coordinates from being initialized
+  with a wrong size. This would most often be noticeable in multi-viewport mode (docking branch)
+  when spawning a window in a monitor with negative coordinates. (#5215, #3414) [@DimaKoltun]
 - Clipper: Fixed a regression in 1.86 when not calling clipper.End() and late destructing the
 - Clipper: Fixed a regression in 1.86 when not calling clipper.End() and late destructing the
   clipper instance. High-level languages (Lua,Rust etc.) would typically be affected. (#4822)
   clipper instance. High-level languages (Lua,Rust etc.) would typically be affected. (#4822)
 - Layout: Fixed mixing up SameLine() and SetCursorPos() together from creating situations where line
 - Layout: Fixed mixing up SameLine() and SetCursorPos() together from creating situations where line

+ 1 - 1
imgui.cpp

@@ -5339,7 +5339,7 @@ static ImGuiWindow* CreateNewWindow(const char* name, ImGuiWindowFlags flags)
             SetWindowConditionAllowFlags(window, ImGuiCond_FirstUseEver, false);
             SetWindowConditionAllowFlags(window, ImGuiCond_FirstUseEver, false);
             ApplyWindowSettings(window, settings);
             ApplyWindowSettings(window, settings);
         }
         }
-    window->DC.CursorStartPos = window->DC.CursorMaxPos = window->Pos; // So first call to CalcContentSize() doesn't return crazy values
+    window->DC.CursorStartPos = window->DC.CursorMaxPos = window->DC.IdealMaxPos = window->Pos; // So first call to CalcWindowContentSizes() doesn't return crazy values
 
 
     if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0)
     if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0)
     {
     {