From 22df6aeab038f249c48eb9a1ed3ab4bd234732bc Mon Sep 17 00:00:00 2001 From: Shatyuka Date: Mon, 13 Apr 2026 15:35:16 +0800 Subject: [PATCH] feat(uefi): handle suspend scan code as enter (#9945) --- src/drivers/uefi/lv_uefi_indev_keyboard.c | 31 +++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/drivers/uefi/lv_uefi_indev_keyboard.c b/src/drivers/uefi/lv_uefi_indev_keyboard.c index 4c8ad0b036..20bc77d648 100644 --- a/src/drivers/uefi/lv_uefi_indev_keyboard.c +++ b/src/drivers/uefi/lv_uefi_indev_keyboard.c @@ -22,6 +22,19 @@ *********************/ #define SIMPLE_TEXT_INPUT_INDEV_SIGNATURE 0x53495449 +#ifndef SCAN_UP + #define SCAN_UP 0x0001 + #define SCAN_DOWN 0x0002 + #define SCAN_RIGHT 0x0003 + #define SCAN_LEFT 0x0004 + #define SCAN_HOME 0x0005 + #define SCAN_END 0x0006 + #define SCAN_DELETE 0x0008 + #define SCAN_ESC 0x0017 +#endif +#ifndef SCAN_SUSPEND + #define SCAN_SUSPEND 0x0102 +#endif /********************** * TYPEDEFS @@ -305,22 +318,24 @@ static uint32_t _key_from_uefi_key(const EFI_KEY_DATA * key) LV_ASSERT_NULL(key); switch(key->Key.ScanCode) { - case 0x01: + case SCAN_UP: return LV_KEY_UP; - case 0x02: + case SCAN_DOWN: return LV_KEY_DOWN; - case 0x04: + case SCAN_LEFT: return LV_KEY_LEFT; - case 0x03: + case SCAN_RIGHT: return LV_KEY_RIGHT; - case 0x08: + case SCAN_DELETE: return LV_KEY_DEL; - case 0x05: + case SCAN_HOME: return LV_KEY_HOME; - case 0x06: + case SCAN_END: return LV_KEY_END; - case 0x17: + case SCAN_ESC: return LV_KEY_ESC; + case SCAN_SUSPEND: + return LV_KEY_ENTER; /* ignore all other scan codes */ default: break;