mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-03 21:41:26 +12:00
cellKbCnvRawCode: don't use caps lock as shift lock unless we are using the qwertz or azerty layout
This commit is contained in:
parent
4bc719470c
commit
c0ed56cba0
1 changed files with 5 additions and 3 deletions
|
@ -177,6 +177,7 @@ u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode)
|
||||||
const bool is_shift = mkey & (CELL_KB_MKEY_L_SHIFT | CELL_KB_MKEY_R_SHIFT);
|
const bool is_shift = mkey & (CELL_KB_MKEY_L_SHIFT | CELL_KB_MKEY_R_SHIFT);
|
||||||
const bool is_caps_lock = led & (CELL_KB_LED_CAPS_LOCK);
|
const bool is_caps_lock = led & (CELL_KB_LED_CAPS_LOCK);
|
||||||
const bool is_num_lock = led & (CELL_KB_LED_NUM_LOCK);
|
const bool is_num_lock = led & (CELL_KB_LED_NUM_LOCK);
|
||||||
|
const bool is_shift_lock = is_caps_lock && (arrange == CELL_KB_MAPPING_GERMAN_GERMANY || arrange == CELL_KB_MAPPING_FRENCH_FRANCE);
|
||||||
|
|
||||||
// CELL_KB_NUMPAD
|
// CELL_KB_NUMPAD
|
||||||
|
|
||||||
|
@ -194,13 +195,14 @@ u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode)
|
||||||
|
|
||||||
// ASCII
|
// ASCII
|
||||||
|
|
||||||
const auto get_ascii = [is_alt, is_shift, is_caps_lock](u16 raw, u16 shifted = 0, u16 altered = 0)
|
const auto get_ascii = [&](u16 raw, u16 shifted = 0, u16 altered = 0)
|
||||||
{
|
{
|
||||||
if ((is_shift || is_caps_lock) && shifted)
|
// Usually caps lock only applies uppercase to letters, but some layouts treat it as shift lock for all keys.
|
||||||
|
if ((is_shift || (is_caps_lock && (is_shift_lock || std::isalpha(raw)))) && shifted)
|
||||||
{
|
{
|
||||||
return shifted;
|
return shifted;
|
||||||
}
|
}
|
||||||
else if (is_alt && altered)
|
if (is_alt && altered)
|
||||||
{
|
{
|
||||||
return altered;
|
return altered;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue