Skip to content

Commit

Permalink
fix(sdl): handle is the window_id is not set correctly in SDL
Browse files Browse the repository at this point in the history
fixes lvgl#6138
  • Loading branch information
kisvegabor committed May 7, 2024
1 parent 10e0d5f commit 1e50915
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
7 changes: 4 additions & 3 deletions src/drivers/sdl/lv_sdl_keyboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,16 @@ void _lv_sdl_keyboard_handler(SDL_Event * event)

lv_display_t * disp = _lv_sdl_get_disp_from_win_id(win_id);


/*Find a suitable indev*/
lv_indev_t * indev = lv_indev_get_next(NULL);
while(indev) {
if(lv_indev_get_display(indev) == disp && lv_indev_get_type(indev) == LV_INDEV_TYPE_KEYPAD) {
break;
if(lv_indev_get_type(indev) == LV_INDEV_TYPE_KEYPAD) {
/*If disp is NULL for any reason use the first indev with the correct type*/
if(disp == NULL || lv_indev_get_display(indev) == disp) break;
}
indev = lv_indev_get_next(indev);
}

if(indev == NULL) return;
lv_sdl_keyboard_t * dsc = lv_indev_get_driver_data(indev);

Expand Down
5 changes: 3 additions & 2 deletions src/drivers/sdl/lv_sdl_mouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,9 @@ void _lv_sdl_mouse_handler(SDL_Event * event)
/*Find a suitable indev*/
lv_indev_t * indev = lv_indev_get_next(NULL);
while(indev) {
if(lv_indev_get_display(indev) == disp && lv_indev_get_type(indev) == LV_INDEV_TYPE_POINTER) {
break;
if(lv_indev_get_type(indev) == LV_INDEV_TYPE_POINTER) {
/*If disp is NULL for any reason use the first indev with the correct type*/
if(disp == NULL || lv_indev_get_display(indev) == disp) break;
}
indev = lv_indev_get_next(indev);
}
Expand Down
5 changes: 3 additions & 2 deletions src/drivers/sdl/lv_sdl_mousewheel.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,9 @@ void _lv_sdl_mousewheel_handler(SDL_Event * event)
/*Find a suitable indev*/
lv_indev_t * indev = lv_indev_get_next(NULL);
while(indev) {
if(lv_indev_get_display(indev) == disp && lv_indev_get_type(indev) == LV_INDEV_TYPE_ENCODER) {
break;
if(lv_indev_get_type(indev) == LV_INDEV_TYPE_ENCODER) {
/*If disp is NULL for any reason use the first indev with the correct type*/
if(disp == NULL || lv_indev_get_display(indev) == disp) break;
}
indev = lv_indev_get_next(indev);
}
Expand Down

0 comments on commit 1e50915

Please sign in to comment.