Browse Source

Viewport: Moving a window accross viewports tries to preserve the dragging pivot (that is assuming that the window will be evenly scaled by DPI, aka Style is scaled). (#1542)

omar 7 years ago
parent
commit
c23b5463c7
1 changed files with 8 additions and 2 deletions
  1. 8 2
      imgui.cpp

+ 8 - 2
imgui.cpp

@@ -13982,11 +13982,17 @@ static void ScaleWindow(ImGuiWindow* window, float scale)
 void ImGui::ScaleWindowsInViewport(ImGuiViewportP* viewport, float scale)
 {
     ImGuiContext& g = *GImGui;
+
+    if (g.MovingWindow != NULL)
+        g.ActiveIdClickOffset = ImFloor(g.ActiveIdClickOffset * scale);
+    /*
     if (g.IO.MousePosViewport == viewport->ID)
     {
-        //g.IO.MousePos = g.IO.MousePosPrev = ImFloor((g.IO.MousePos - viewport->Pos) * scale) + viewport->Pos;
-        //g.IO.MouseDelta = ImVec2(0,0);
+        g.IO.MousePos = g.IO.MousePosPrev = ImFloor((g.IO.MousePos - viewport->Pos) * scale) + viewport->Pos;
+        g.IO.MouseDelta = ImVec2(0,0);
     }
+    */
+
     if (viewport->Window)
     {
         ScaleWindow(viewport->Window, scale);