Filter out Keypad as a mod in sdl_key_names (#1678)

This commit is contained in:
Chris 2021-02-24 11:19:57 -05:00 committed by GitHub
parent 617554bea7
commit 85ad091c22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 1 deletions

View File

@ -333,14 +333,22 @@ std::optional<u32> ParseKeyString(const std::string_view key_str)
break;
const std::string_view mod_part = key_str.substr(pos, plus_pos - pos);
// Keypad in SDL is not a mod and should always be the last + in the string
bool known_mod = false;
for (const SDLKeyModifierEntry& mod : s_sdl_key_modifiers)
{
if (mod_part == mod.name)
{
modifiers |= static_cast<int>(mod.mod);
known_mod = true;
break;
}
}
if (!known_mod)
break;
pos = plus_pos + 1;
}
@ -350,4 +358,4 @@ std::optional<u32> ParseKeyString(const std::string_view key_str)
return static_cast<u32>(key_code.value()) | (modifiers << 16);
}
} // namespace SDLKeyNames
} // namespace SDLKeyNames