Forráskód Böngészése

Fixed not being able to move a window by clicking on one of its child window (#1337, #635), broken by https://github.com/ocornut/imgui/commit/313d388bba42e0634a02b976dcdbae238d25eddc

omar 8 éve
szülő
commit
e56eba44fe
1 módosított fájl, 5 hozzáadás és 8 törlés
  1. 5 8
      imgui.cpp

+ 5 - 8
imgui.cpp

@@ -2230,15 +2230,12 @@ void ImGui::NewFrame()
     {
     {
         KeepAliveID(g.MovedWindowMoveId);
         KeepAliveID(g.MovedWindowMoveId);
         IM_ASSERT(g.MovedWindow && g.MovedWindow->RootWindow);
         IM_ASSERT(g.MovedWindow && g.MovedWindow->RootWindow);
-        IM_ASSERT(g.MovedWindow->RootWindow->MoveId == g.MovedWindowMoveId);
+        IM_ASSERT(g.MovedWindow->MoveId == g.MovedWindowMoveId);
         if (g.IO.MouseDown[0])
         if (g.IO.MouseDown[0])
         {
         {
-            if (!(g.MovedWindow->Flags & ImGuiWindowFlags_NoMove))
-            {
-                g.MovedWindow->PosFloat += g.IO.MouseDelta;
-                if (g.IO.MouseDelta.x != 0.0f || g.IO.MouseDelta.y != 0.0f)
-                    MarkIniSettingsDirty(g.MovedWindow);
-            }
+            g.MovedWindow->RootWindow->PosFloat += g.IO.MouseDelta;
+            if (g.IO.MouseDelta.x != 0.0f || g.IO.MouseDelta.y != 0.0f)
+                MarkIniSettingsDirty(g.MovedWindow->RootWindow);
             FocusWindow(g.MovedWindow);
             FocusWindow(g.MovedWindow);
         }
         }
         else
         else
@@ -2704,7 +2701,7 @@ void ImGui::EndFrame()
                 if (!(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove))
                 if (!(g.HoveredWindow->Flags & ImGuiWindowFlags_NoMove))
                 {
                 {
                     g.MovedWindow = g.HoveredWindow;
                     g.MovedWindow = g.HoveredWindow;
-                    g.MovedWindowMoveId = g.HoveredRootWindow->MoveId;
+                    g.MovedWindowMoveId = g.HoveredWindow->MoveId;
                     SetActiveID(g.MovedWindowMoveId, g.HoveredRootWindow);
                     SetActiveID(g.MovedWindowMoveId, g.HoveredRootWindow);
                 }
                 }
             }
             }