From 4e050b82548b3436316d53157c1161985b072171 Mon Sep 17 00:00:00 2001 From: TheOfficialMrBlah <33206578+TheOfficialMrBlah@users.noreply.github.com> Date: Tue, 7 May 2024 01:24:02 +0200 Subject: [PATCH 1/2] scr_load_anim_start: load screen from matching display If the animation starts and a different display has been set as the default in the meantime, the screen set as "previous" was loaded from the wrong display. Fix: lv_screen_active() replaced with lv_display_get_screen_active() --- src/display/lv_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/display/lv_display.c b/src/display/lv_display.c index deb308a63ed..4c061d095ea 100644 --- a/src/display/lv_display.c +++ b/src/display/lv_display.c @@ -1031,7 +1031,7 @@ static void scr_load_anim_start(lv_anim_t * a) { lv_display_t * d = lv_obj_get_display(a->var); - d->prev_scr = lv_screen_active(); + d->prev_scr = lv_display_get_screen_active(d); d->act_scr = a->var; lv_obj_send_event(d->act_scr, LV_EVENT_SCREEN_LOAD_START, NULL); From 613d83757932fa18377b82941fd787507feac2d4 Mon Sep 17 00:00:00 2001 From: TheOfficialMrBlah <33206578+TheOfficialMrBlah@users.noreply.github.com> Date: Sun, 12 May 2024 18:36:41 +0200 Subject: [PATCH 2/2] Update lv_display.c: changed lv_screen_active() to d->act_scr changed lv_screen_active() calls to d->act_scr --- src/display/lv_display.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/display/lv_display.c b/src/display/lv_display.c index 4c061d095ea..522f4fd74cd 100644 --- a/src/display/lv_display.c +++ b/src/display/lv_display.c @@ -570,7 +570,7 @@ void lv_screen_load_anim(lv_obj_t * new_scr, lv_screen_load_anim_t anim_type, ui bool auto_del) { lv_display_t * d = lv_obj_get_display(new_scr); - lv_obj_t * act_scr = lv_screen_active(); + lv_obj_t * act_scr = d->act_scr; if(act_scr == new_scr || d->scr_to_load == new_scr) { return; @@ -586,7 +586,7 @@ void lv_screen_load_anim(lv_obj_t * new_scr, lv_screen_load_anim_t anim_type, ui if(d->del_prev) { lv_obj_delete(act_scr); } - act_scr = lv_screen_active(); /*Active screen changed.*/ + act_scr = d->act_scr; /*Active screen changed.*/ scr_load_internal(d->scr_to_load); } @@ -1031,7 +1031,7 @@ static void scr_load_anim_start(lv_anim_t * a) { lv_display_t * d = lv_obj_get_display(a->var); - d->prev_scr = lv_display_get_screen_active(d); + d->prev_scr = d->act_scr; d->act_scr = a->var; lv_obj_send_event(d->act_scr, LV_EVENT_SCREEN_LOAD_START, NULL);