mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
IO: set io.KeyModsPrev in EndFrame() to tolerate backend writing to io.KeyMods without breaking. (#4439)
Amend ff428f1
This commit is contained in:
parent
2f40be638f
commit
cd39460925
@ -4049,7 +4049,6 @@ void ImGui::NewFrame()
|
|||||||
|
|
||||||
// Update keyboard input state
|
// Update keyboard input state
|
||||||
// Synchronize io.KeyMods with individual modifiers io.KeyXXX bools
|
// Synchronize io.KeyMods with individual modifiers io.KeyXXX bools
|
||||||
g.IO.KeyModsPrev = g.IO.KeyMods;
|
|
||||||
g.IO.KeyMods = GetMergedKeyModFlags();
|
g.IO.KeyMods = GetMergedKeyModFlags();
|
||||||
memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration));
|
memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration));
|
||||||
for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++)
|
for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++)
|
||||||
@ -4487,6 +4486,7 @@ void ImGui::EndFrame()
|
|||||||
// Clear Input data for next frame
|
// Clear Input data for next frame
|
||||||
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);
|
||||||
|
g.IO.KeyModsPrev = g.IO.KeyMods; // doing it here is better than in NewFrame() as we'll tolerate backend writing to KeyMods. If we want to firmly disallow it we should detect it.
|
||||||
memset(g.IO.NavInputs, 0, sizeof(g.IO.NavInputs));
|
memset(g.IO.NavInputs, 0, sizeof(g.IO.NavInputs));
|
||||||
|
|
||||||
CallContextHooks(&g, ImGuiContextHookType_EndFramePost);
|
CallContextHooks(&g, ImGuiContextHookType_EndFramePost);
|
||||||
|
Loading…
Reference in New Issue
Block a user