diff options
-rw-r--r-- | apps/gui/list.c | 23 | ||||
-rw-r--r-- | apps/gui/list.h | 1 | ||||
-rw-r--r-- | apps/menus/time_menu.c | 4 |
3 files changed, 17 insertions, 11 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c index e05e44008b..f875a6559e 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c @@ -101,15 +101,7 @@ static void list_init_viewports(struct gui_synclist *list) { FOR_NB_SCREENS(i) { - list->parent[i] = &parent[i]; - viewport_set_defaults(&parent[i], i); -#ifdef HAVE_TOUCHSCREEN - parent[i].line_height = list_line_height(list->parent[i]); -#endif -#ifdef HAVE_BUTTONBAR - if (screens[i].has_buttonbar) - list->parent[i]->height -= BUTTONBAR_HEIGHT; -#endif + gui_synclist_set_viewport_defaults(list->parent[i], i); } } list->dirty_tick = current_tick; @@ -502,6 +494,19 @@ void gui_synclist_set_voice_callback(struct gui_synclist * lists, lists->callback_speak_item = voice_callback; } +void gui_synclist_set_viewport_defaults(struct viewport *vp, + enum screen_type screen) +{ + viewport_set_defaults(vp, screen); +#ifdef HAVE_TOUCHSCREEN + vp->line_height = list_line_height(vp); +#endif +#ifdef HAVE_BUTTONBAR + if (screens[screen].has_buttonbar) + vp->height -= BUTTONBAR_HEIGHT; +#endif +} + #ifdef HAVE_LCD_COLOR void gui_synclist_set_color_callback(struct gui_synclist * lists, list_get_color color_callback) diff --git a/apps/gui/list.h b/apps/gui/list.h index 636d36c318..1a713daa36 100644 --- a/apps/gui/list.h +++ b/apps/gui/list.h @@ -145,6 +145,7 @@ extern void gui_synclist_init( extern void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items); extern void gui_synclist_set_icon_callback(struct gui_synclist * lists, list_get_icon icon_callback); extern void gui_synclist_set_voice_callback(struct gui_synclist * lists, list_speak_item voice_callback); +extern void gui_synclist_set_viewport_defaults(struct viewport *vp, enum screen_type screen); #ifdef HAVE_LCD_COLOR extern void gui_synclist_set_color_callback(struct gui_synclist * lists, list_get_color color_callback); #endif diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c index 7059c5d92c..c4fe49aa49 100644 --- a/apps/menus/time_menu.c +++ b/apps/menus/time_menu.c @@ -265,11 +265,11 @@ int time_screen(void* ignored) #endif nb_lines = viewport_get_nb_lines(&clock_vps[i]); - menu[i] = clock_vps[i]; + gui_synclist_set_viewport_defaults(&menu[i], i); /* force time to be drawn centered */ clock_vps[i].flags |= VP_FLAG_ALIGN_CENTER; - font_h = font_get(clock_vps[i].font)->height; + font_h = clock_vps[i].line_height; nb_lines -= 2; /* at least 2 lines for menu */ if (nb_lines > 4) nb_lines = 4; |