diff --git a/src/drivers/libinput/lv_libinput.c b/src/drivers/libinput/lv_libinput.c index 5af7aa7d48..f207fa4776 100644 --- a/src/drivers/libinput/lv_libinput.c +++ b/src/drivers/libinput/lv_libinput.c @@ -587,6 +587,12 @@ static void _read_keypad(lv_libinput_t * dsc, struct libinput_event * event) case KEY_TAB: evt->key_val = LV_KEY_NEXT; break; + case KEY_HOME: + evt->key_val = LV_KEY_HOME; + break; + case KEY_END: + evt->key_val = LV_KEY_END; + break; default: evt->key_val = 0; break; diff --git a/src/drivers/libinput/lv_xkb.c b/src/drivers/libinput/lv_xkb.c index f1a4387cd6..96aeb4c0b2 100644 --- a/src/drivers/libinput/lv_xkb.c +++ b/src/drivers/libinput/lv_xkb.c @@ -120,6 +120,14 @@ uint32_t lv_xkb_process_key(lv_xkb_t * dsc, uint32_t scancode, bool down) case XKB_KEY_ISO_Left_Tab: /* Sent on SHIFT + TAB */ result = LV_KEY_PREV; break; + case XKB_KEY_Home: + case XKB_KEY_KP_Home: + result = LV_KEY_HOME; + break; + case XKB_KEY_End: + case XKB_KEY_KP_End: + result = LV_KEY_END; + break; default: break; } diff --git a/src/drivers/sdl/lv_sdl_keyboard.c b/src/drivers/sdl/lv_sdl_keyboard.c index 9ac7fec738..ebff6a1309 100644 --- a/src/drivers/sdl/lv_sdl_keyboard.c +++ b/src/drivers/sdl/lv_sdl_keyboard.c @@ -204,6 +204,12 @@ static uint32_t keycode_to_ctrl_key(SDL_Keycode sdl_key) case SDLK_PAGEUP: return LV_KEY_PREV; + case SDLK_HOME: + return LV_KEY_HOME; + + case SDLK_END: + return LV_KEY_END; + default: return '\0'; }