diff options
Diffstat (limited to 'firmware/drivers/lcd-16bit.c')
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 5 |
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) | |||
782 | void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style, | 782 | void 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 | ||