Skip to content

Commit

Permalink
IO: ImGuiMod_Shortcut (Ctrl/Cmd depending on platform) is reflected i…
Browse files Browse the repository at this point in the history
…n io.KeyMods. (#5923, #456)
  • Loading branch information
ocornut committed Sep 1, 2023
1 parent a066074 commit b8f93a8
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Other changes:
- ImDrawList: Automatically calling ChannelsMerge() if not done after a split.
- ImDrawList: Fixed OOB access in _CalcCircleAutoSegmentCount when passing excessively
large radius to AddCircle(). (#6657, #5317) [@EggsyCRO, @jdpatdiscord]
- IO: ImGuiMod_Shortcut (Ctrl/Cmd depending on platform) is reflected in io.KeyMods. (#5923, #456)
- IO: Exposed io.PlatformLocaleDecimalPoint to configure decimal point ('.' or ',') for
languages needing it. Should ideally be set to the value of '*localeconv()->decimal_point'
but our backends don't do it yet. (#6719, #2278)
Expand Down
3 changes: 2 additions & 1 deletion imgui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8480,6 +8480,7 @@ static ImGuiKeyChord GetMergedModsFromKeys()
if (ImGui::IsKeyDown(ImGuiMod_Shift)) { mods |= ImGuiMod_Shift; }
if (ImGui::IsKeyDown(ImGuiMod_Alt)) { mods |= ImGuiMod_Alt; }
if (ImGui::IsKeyDown(ImGuiMod_Super)) { mods |= ImGuiMod_Super; }
if (ImGui::IsKeyDown(ImGuiMod_Shortcut)) { mods |= ImGuiMod_Shortcut; }
return mods;
}

Expand Down Expand Up @@ -9226,7 +9227,7 @@ static void ImGui::ErrorCheckEndFrameSanityChecks()
// We silently accommodate for this case by ignoring the case where all io.KeyXXX modifiers were released (aka key_mod_flags == 0),
// while still correctly asserting on mid-frame key press events.
const ImGuiKeyChord key_mods = GetMergedModsFromKeys();
IM_ASSERT((key_mods == 0 || g.IO.KeyMods == key_mods) && "Mismatching io.KeyCtrl/io.KeyShift/io.KeyAlt/io.KeySuper vs io.KeyMods");
IM_ASSERT((key_mods == 0 || (g.IO.KeyMods & ~ImGuiMod_Shortcut ) == (key_mods & ~ImGuiMod_Shortcut)) && "Mismatching io.KeyCtrl/io.KeyShift/io.KeyAlt/io.KeySuper vs io.KeyMods");
IM_UNUSED(key_mods);

// [EXPERIMENTAL] Recover from errors: You may call this yourself before EndFrame().
Expand Down

0 comments on commit b8f93a8

Please sign in to comment.