From 93c6c79e8d2ee39056afe7f8145b051d4a0e8d38 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Sat, 29 Oct 2011 15:16:02 +0000 Subject: Better fix for FS#12337. Use 0 to make the line height calculated from the font height, as before r30773. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30850 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_parser.c | 1 - apps/gui/viewport.c | 4 +++- apps/menus/time_menu.c | 2 +- firmware/drivers/lcd-bitmap-common.c | 2 +- firmware/export/lcd.h | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index a9689a8e00..1557783a7c 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -1694,7 +1694,6 @@ static bool skin_load_fonts(struct wps_data *data) /* finally, assign the font_id to the viewport */ vp->font = font->id; - vp->line_height = font_get(vp->font)->height; } data->font_ids = skin_buffer_alloc(font_count * sizeof(int)); if (!success || data->font_ids == NULL) diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c index c5e44270d4..33ffed79f3 100644 --- a/apps/gui/viewport.c +++ b/apps/gui/viewport.c @@ -223,6 +223,8 @@ static bool is_theme_enabled(enum screen_type screen) int viewport_get_nb_lines(const struct viewport *vp) { #ifdef HAVE_LCD_BITMAP + if (!vp->line_height) + return vp->height/font_get(vp->font)->height; return vp->height/vp->line_height; #else (void)vp; @@ -318,7 +320,7 @@ void viewport_set_fullscreen(struct viewport *vp, set_default_align_flags(vp); #endif vp->font = global_status.font_id[screen]; - vp->line_height = font_get(vp->font)->height; + vp->line_height = 0; /* calculate from font height */ vp->drawmode = DRMODE_SOLID; #if LCD_DEPTH > 1 #ifdef HAVE_REMOTE_LCD diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c index c4fe49aa49..9be335c8ee 100644 --- a/apps/menus/time_menu.c +++ b/apps/menus/time_menu.c @@ -269,7 +269,7 @@ int time_screen(void* ignored) /* force time to be drawn centered */ clock_vps[i].flags |= VP_FLAG_ALIGN_CENTER; - font_h = clock_vps[i].line_height; + font_h = clock_vps[i].line_height ?: (int)font_get(clock_vps[i].font)->height; nb_lines -= 2; /* at least 2 lines for menu */ if (nb_lines > 4) nb_lines = 4; diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index fb49deb76b..878c08863b 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c @@ -453,7 +453,7 @@ void LCDFN(scroll_fn)(void) continue; LCDFN(set_viewport)(s->vp); - height = s->vp->line_height; + height = s->vp->line_height ?: (int)font_get(s->vp->font)->height; if (s->backward) s->offset -= LCDFN(scroll_info).step; diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index e68795391f..f4336233ab 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -43,7 +43,7 @@ struct viewport { #ifdef HAVE_LCD_BITMAP int flags; int font; - int line_height; + int line_height; /* 0 for using font height */ int drawmode; #endif #if LCD_DEPTH > 1 -- cgit v1.2.3