summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-16bit.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/lcd-16bit.c')
-rw-r--r--firmware/drivers/lcd-16bit.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index c3307a560a..ebf714709c 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -782,7 +782,7 @@ void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
782void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, 782void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style,
783 int offset) 783 int offset)
784{ 784{
785 int xpos,ypos,w,h; 785 int xpos,ypos,w,h,xrect;
786 int lastmode = drawmode; 786 int lastmode = drawmode;
787 787
788 /* make sure scrolling is turned off on the line we are updating */ 788 /* make sure scrolling is turned off on the line we are updating */
@@ -798,7 +798,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style,
798 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 798 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
799 lcd_putsxyofs(xpos, ypos, offset, str); 799 lcd_putsxyofs(xpos, ypos, offset, str);
800 drawmode ^= DRMODE_INVERSEVID; 800 drawmode ^= DRMODE_INVERSEVID;
801 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h); 801 xrect = xpos + MAX(w - offset, 0);
802 lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
802 drawmode = lastmode; 803 drawmode = lastmode;
803} 804}
804 805