summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/lcd-16bit.c5
-rw-r--r--firmware/drivers/lcd-2bit-horz.c5
-rw-r--r--firmware/drivers/lcd-h100-remote.c6
-rw-r--r--firmware/drivers/lcd-h100.c5
-rw-r--r--firmware/drivers/lcd-recorder.c5
5 files changed, 15 insertions, 11 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index c3307a5..ebf7147 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)
void lcd_puts_style_offset(int x, int y, const unsigned char *str, int style,
int offset)
{
- int xpos,ypos,w,h;
+ int xpos,ypos,w,h,xrect;
int lastmode = drawmode;
/* 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,
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
- lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
+ xrect = xpos + MAX(w - offset, 0);
+ lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
drawmode = lastmode;
}
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c
index abe608f..14bf952 100644
--- a/firmware/drivers/lcd-2bit-horz.c
+++ b/firmware/drivers/lcd-2bit-horz.c
@@ -747,7 +747,7 @@ void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
void lcd_puts_style_offset(int x, int y, const unsigned char *str,
int style, int offset)
{
- int xpos,ypos,w,h;
+ int xpos,ypos,w,h,xrect;
int lastmode = drawmode;
/* make sure scrolling is turned off on the line we are updating */
@@ -763,7 +763,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
- lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
+ xrect = xpos + MAX(w - offset, 0);
+ lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
drawmode = lastmode;
}
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index 2d16a08..d023aeb 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -1210,7 +1210,7 @@ void lcd_remote_puts_offset(int x, int y, const unsigned char *str, int offset)
void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str,
int style, int offset)
{
- int xpos,ypos,w,h;
+ int xpos,ypos,w,h,xrect;
int lastmode = drawmode;
/* make sure scrolling is turned off on the line we are updating */
@@ -1226,8 +1226,8 @@ void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str,
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_remote_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
- lcd_remote_fillrect(xpos + w - offset, ypos,
- LCD_REMOTE_WIDTH - (xpos + w - offset), h);
+ xrect = xpos + MAX(w - offset, 0);
+ lcd_remote_fillrect(xrect, ypos, LCD_REMOTE_WIDTH - xrect, h);
drawmode = lastmode;
}
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index 85b8b02..42bf13a 100644
--- a/firmware/drivers/lcd-h100.c
+++ b/firmware/drivers/lcd-h100.c
@@ -1081,7 +1081,7 @@ void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
void lcd_puts_style_offset(int x, int y, const unsigned char *str,
int style, int offset)
{
- int xpos,ypos,w,h;
+ int xpos,ypos,w,h,xrect;
int lastmode = drawmode;
/* make sure scrolling is turned off on the line we are updating */
@@ -1097,7 +1097,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
- lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
+ xrect = xpos + MAX(w - offset, 0);
+ lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
drawmode = lastmode;
}
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index 8914e27..d75b989 100644
--- a/firmware/drivers/lcd-recorder.c
+++ b/firmware/drivers/lcd-recorder.c
@@ -933,7 +933,7 @@ void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
void lcd_puts_style_offset(int x, int y, const unsigned char *str,
int style, int offset)
{
- int xpos,ypos,w,h;
+ int xpos,ypos,w,h,xrect;
int lastmode = drawmode;
/* make sure scrolling is turned off on the line we are updating */
@@ -949,7 +949,8 @@ void lcd_puts_style_offset(int x, int y, const unsigned char *str,
(DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
- lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h);
+ xrect = xpos + MAX(w - offset, 0);
+ lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
drawmode = lastmode;
}