summaryrefslogtreecommitdiff
path: root/Kernel/Devices/HID/PS2KeyboardDevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/Devices/HID/PS2KeyboardDevice.cpp')
-rw-r--r--Kernel/Devices/HID/PS2KeyboardDevice.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Kernel/Devices/HID/PS2KeyboardDevice.cpp b/Kernel/Devices/HID/PS2KeyboardDevice.cpp
index 9dfe2a772d..8ff6d5b3b0 100644
--- a/Kernel/Devices/HID/PS2KeyboardDevice.cpp
+++ b/Kernel/Devices/HID/PS2KeyboardDevice.cpp
@@ -54,7 +54,12 @@ void PS2KeyboardDevice::irq_handle_byte_read(u8 byte)
break;
case 0x2a:
case 0x36:
- update_modifier(Mod_Shift, pressed);
+ if (m_both_shift_keys_pressed)
+ m_both_shift_keys_pressed = false;
+ else if ((m_modifiers & Mod_Shift) != 0 && pressed)
+ m_both_shift_keys_pressed = true;
+ else
+ update_modifier(Mod_Shift, pressed);
break;
}
switch (ch) {