diff options
Diffstat (limited to 'firmware/drivers/lcd-bitmap-common.c')
-rw-r--r-- | firmware/drivers/lcd-bitmap-common.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c index 330639fd87..97921c6347 100644 --- a/firmware/drivers/lcd-bitmap-common.c +++ b/firmware/drivers/lcd-bitmap-common.c | |||
@@ -387,12 +387,11 @@ void LCDFN(putsxyf)(int x, int y, const unsigned char *fmt, ...) | |||
387 | 387 | ||
388 | static void LCDFN(putsxyofs_style)(int xpos, int ypos, | 388 | static void LCDFN(putsxyofs_style)(int xpos, int ypos, |
389 | const unsigned char *str, int style, | 389 | const unsigned char *str, int style, |
390 | int h, int offset) | 390 | int offset) |
391 | { | 391 | { |
392 | int lastmode = current_vp->drawmode; | 392 | int lastmode = current_vp->drawmode; |
393 | int text_ypos = ypos; | 393 | int text_ypos = ypos; |
394 | int line_height = font_get(current_vp->font)->height; | 394 | int h = font_get(current_vp->font)->height; |
395 | text_ypos += h/2 - line_height/2; /* center the text in the line */ | ||
396 | 395 | ||
397 | if ((style & STYLE_MODE_MASK) == STYLE_NONE) { | 396 | if ((style & STYLE_MODE_MASK) == STYLE_NONE) { |
398 | if (str[0]) | 397 | if (str[0]) |
@@ -452,7 +451,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str, | |||
452 | if(!str) | 451 | if(!str) |
453 | return; | 452 | return; |
454 | 453 | ||
455 | h = current_vp->line_height ?: (int)font_get(current_vp->font)->height; | 454 | h = font_get(current_vp->font)->height; |
456 | if ((style&STYLE_XY_PIXELS) == 0) | 455 | if ((style&STYLE_XY_PIXELS) == 0) |
457 | { | 456 | { |
458 | xpos = x * LCDFN(getstringsize)(" ", NULL, NULL); | 457 | xpos = x * LCDFN(getstringsize)(" ", NULL, NULL); |
@@ -464,7 +463,7 @@ static void LCDFN(putsofs_style)(int x, int y, const unsigned char *str, | |||
464 | ypos = y; | 463 | ypos = y; |
465 | } | 464 | } |
466 | LCDFN(scroll_stop_viewport_rect)(current_vp, xpos, ypos, current_vp->width - xpos, h); | 465 | LCDFN(scroll_stop_viewport_rect)(current_vp, xpos, ypos, current_vp->width - xpos, h); |
467 | LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, h, x_offset); | 466 | LCDFN(putsxyofs_style)(xpos, ypos+y_offset, str, style, x_offset); |
468 | } | 467 | } |
469 | 468 | ||
470 | void LCDFN(puts)(int x, int y, const unsigned char *str) | 469 | void LCDFN(puts)(int x, int y, const unsigned char *str) |
@@ -501,7 +500,7 @@ static struct scrollinfo* find_scrolling_line(int x, int y) | |||
501 | 500 | ||
502 | void LCDFN(scroll_fn)(struct scrollinfo* s) | 501 | void LCDFN(scroll_fn)(struct scrollinfo* s) |
503 | { | 502 | { |
504 | LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->height, s->offset); | 503 | LCDFN(putsxyofs_style)(s->x, s->y, s->line, s->style, s->offset); |
505 | } | 504 | } |
506 | 505 | ||
507 | static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, | 506 | static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, |
@@ -521,7 +520,7 @@ static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, | |||
521 | /* prepare rectangle for scrolling. x and y must be calculated early | 520 | /* prepare rectangle for scrolling. x and y must be calculated early |
522 | * for find_scrolling_line() to work */ | 521 | * for find_scrolling_line() to work */ |
523 | cwidth = font_get(current_vp->font)->maxwidth; | 522 | cwidth = font_get(current_vp->font)->maxwidth; |
524 | height = current_vp->line_height ?: (int)font_get(current_vp->font)->height; | 523 | height = font_get(current_vp->font)->height; |
525 | y = y * (linebased ? height : 1) + y_offset; | 524 | y = y * (linebased ? height : 1) + y_offset; |
526 | x = x * (linebased ? cwidth : 1); | 525 | x = x * (linebased ? cwidth : 1); |
527 | width = current_vp->width - x; | 526 | width = current_vp->width - x; |
@@ -535,7 +534,7 @@ static void LCDFN(puts_scroll_worker)(int x, int y, const unsigned char *string, | |||
535 | if (restart) { | 534 | if (restart) { |
536 | /* remove any previously scrolling line at the same location */ | 535 | /* remove any previously scrolling line at the same location */ |
537 | LCDFN(scroll_stop_viewport_rect)(current_vp, x, y, width, height); | 536 | LCDFN(scroll_stop_viewport_rect)(current_vp, x, y, width, height); |
538 | LCDFN(putsxyofs_style)(x, y, string, style, height, x_offset); | 537 | LCDFN(putsxyofs_style)(x, y, string, style, x_offset); |
539 | 538 | ||
540 | if (LCDFN(scroll_info).lines >= LCDM(SCROLLABLE_LINES)) | 539 | if (LCDFN(scroll_info).lines >= LCDM(SCROLLABLE_LINES)) |
541 | return; | 540 | return; |