summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/gui/skin_engine/skin_parser.c1
-rw-r--r--apps/gui/viewport.c4
-rw-r--r--apps/menus/time_menu.c2
-rw-r--r--firmware/drivers/lcd-bitmap-common.c2
-rw-r--r--firmware/export/lcd.h2
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