Fixed MousePosPrev with has never been valid outside of NewFrame().

bed6ef03f always worked because it was done in NewFrame() before the assignment.
This commit is contained in:
ocornut 2023-09-25 14:41:48 +02:00
parent 12ee2dd789
commit 72ae6f5200

View File

@ -5082,6 +5082,7 @@ void ImGui::EndFrame()
g.IO.Fonts->Locked = false; g.IO.Fonts->Locked = false;
// Clear Input data for next frame // Clear Input data for next frame
g.IO.MousePosPrev = g.IO.MousePos;
g.IO.AppFocusLost = false; g.IO.AppFocusLost = false;
g.IO.MouseWheel = g.IO.MouseWheelH = 0.0f; g.IO.MouseWheel = g.IO.MouseWheelH = 0.0f;
g.IO.InputQueueCharacters.resize(0); g.IO.InputQueueCharacters.resize(0);
@ -8670,7 +8671,6 @@ static void ImGui::UpdateMouseInputs()
if (io.MouseDelta.x != 0.0f || io.MouseDelta.y != 0.0f) if (io.MouseDelta.x != 0.0f || io.MouseDelta.y != 0.0f)
g.NavDisableMouseHover = false; g.NavDisableMouseHover = false;
io.MousePosPrev = io.MousePos;
for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++)
{ {
io.MouseClicked[i] = io.MouseDown[i] && io.MouseDownDuration[i] < 0.0f; io.MouseClicked[i] = io.MouseDown[i] && io.MouseDownDuration[i] < 0.0f;