diff --git a/apps/gui/list.c b/apps/gui/list.c index 7adb83eb97..288c18ab1c 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c @@ -483,13 +483,15 @@ void gui_synclist_set_color_callback(struct gui_synclist * lists, static void gui_synclist_select_next_page(struct gui_synclist * lists, enum screen_type screen) { - gui_list_select_at_offset(lists, screens[screen].nb_lines); + int nb_lines = viewport_get_nb_lines(lists->parent[screen]); + gui_list_select_at_offset(lists, nb_lines); } static void gui_synclist_select_previous_page(struct gui_synclist * lists, enum screen_type screen) { - gui_list_select_at_offset(lists, -screens[screen].nb_lines); + int nb_lines = viewport_get_nb_lines(lists->parent[screen]); + gui_list_select_at_offset(lists, -nb_lines); } void gui_synclist_limit_scroll(struct gui_synclist * lists, bool scroll) diff --git a/apps/gui/yesno.c b/apps/gui/yesno.c index 7433e16d71..43eccfb313 100644 --- a/apps/gui/yesno.c +++ b/apps/gui/yesno.c @@ -60,7 +60,6 @@ static void gui_yesno_draw(struct gui_yesno * yn) int nb_lines, vp_lines, line_shift=0; display->set_viewport(vp); - display->stop_scroll(); display->clear_viewport(); nb_lines = yn->main_message->nb_lines; vp_lines = viewport_get_nb_lines(vp); @@ -100,7 +99,6 @@ static bool gui_yesno_draw_result(struct gui_yesno * yn, enum yesno_res result) if(message==NULL) return false; display->set_viewport(vp); - display->stop_scroll(); display->clear_viewport(); put_message(yn->display, message, 0, viewport_get_nb_lines(vp)); display->update_viewport(); diff --git a/apps/screens.c b/apps/screens.c index fc5c0053ec..a0e8c9b399 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -56,6 +56,7 @@ #include "list.h" #include "yesno.h" #include "backdrop.h" +#include "viewport.h" #ifdef HAVE_LCD_BITMAP #include @@ -546,7 +547,6 @@ bool set_time_screen(const char* title, struct tm *tm) /* draw the screen */ screens[s].set_viewport(&vp[s]); - screens[s].stop_scroll(); screens[s].clear_viewport(); /* display the screen title */ screens[s].puts_scroll(0, 0, title);