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 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
diff --git a/firmware/drivers/lcd-2bit-horz.c b/firmware/drivers/lcd-2bit-horz.c
index abe608f6b6..14bf952bb2 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)
747void lcd_puts_style_offset(int x, int y, const unsigned char *str, 747void lcd_puts_style_offset(int x, int y, const unsigned char *str,
748 int style, int offset) 748 int style, int offset)
749{ 749{
750 int xpos,ypos,w,h; 750 int xpos,ypos,w,h,xrect;
751 int lastmode = drawmode; 751 int lastmode = drawmode;
752 752
753 /* make sure scrolling is turned off on the line we are updating */ 753 /* 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,
763 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 763 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
764 lcd_putsxyofs(xpos, ypos, offset, str); 764 lcd_putsxyofs(xpos, ypos, offset, str);
765 drawmode ^= DRMODE_INVERSEVID; 765 drawmode ^= DRMODE_INVERSEVID;
766 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h); 766 xrect = xpos + MAX(w - offset, 0);
767 lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
767 drawmode = lastmode; 768 drawmode = lastmode;
768} 769}
769 770
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index 2d16a08a24..d023aeb94b 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)
1210void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str, 1210void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str,
1211 int style, int offset) 1211 int style, int offset)
1212{ 1212{
1213 int xpos,ypos,w,h; 1213 int xpos,ypos,w,h,xrect;
1214 int lastmode = drawmode; 1214 int lastmode = drawmode;
1215 1215
1216 /* make sure scrolling is turned off on the line we are updating */ 1216 /* 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,
1226 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 1226 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
1227 lcd_remote_putsxyofs(xpos, ypos, offset, str); 1227 lcd_remote_putsxyofs(xpos, ypos, offset, str);
1228 drawmode ^= DRMODE_INVERSEVID; 1228 drawmode ^= DRMODE_INVERSEVID;
1229 lcd_remote_fillrect(xpos + w - offset, ypos, 1229 xrect = xpos + MAX(w - offset, 0);
1230 LCD_REMOTE_WIDTH - (xpos + w - offset), h); 1230 lcd_remote_fillrect(xrect, ypos, LCD_REMOTE_WIDTH - xrect, h);
1231 drawmode = lastmode; 1231 drawmode = lastmode;
1232} 1232}
1233 1233
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index 85b8b0229e..42bf13a888 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)
1081void lcd_puts_style_offset(int x, int y, const unsigned char *str, 1081void lcd_puts_style_offset(int x, int y, const unsigned char *str,
1082 int style, int offset) 1082 int style, int offset)
1083{ 1083{
1084 int xpos,ypos,w,h; 1084 int xpos,ypos,w,h,xrect;
1085 int lastmode = drawmode; 1085 int lastmode = drawmode;
1086 1086
1087 /* make sure scrolling is turned off on the line we are updating */ 1087 /* 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,
1097 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 1097 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
1098 lcd_putsxyofs(xpos, ypos, offset, str); 1098 lcd_putsxyofs(xpos, ypos, offset, str);
1099 drawmode ^= DRMODE_INVERSEVID; 1099 drawmode ^= DRMODE_INVERSEVID;
1100 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h); 1100 xrect = xpos + MAX(w - offset, 0);
1101 lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
1101 drawmode = lastmode; 1102 drawmode = lastmode;
1102} 1103}
1103 1104
diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c
index 8914e272ec..d75b989dd2 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)
933void lcd_puts_style_offset(int x, int y, const unsigned char *str, 933void lcd_puts_style_offset(int x, int y, const unsigned char *str,
934 int style, int offset) 934 int style, int offset)
935{ 935{
936 int xpos,ypos,w,h; 936 int xpos,ypos,w,h,xrect;
937 int lastmode = drawmode; 937 int lastmode = drawmode;
938 938
939 /* make sure scrolling is turned off on the line we are updating */ 939 /* 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,
949 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID; 949 (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
950 lcd_putsxyofs(xpos, ypos, offset, str); 950 lcd_putsxyofs(xpos, ypos, offset, str);
951 drawmode ^= DRMODE_INVERSEVID; 951 drawmode ^= DRMODE_INVERSEVID;
952 lcd_fillrect(xpos + w - offset, ypos, LCD_WIDTH - (xpos + w - offset), h); 952 xrect = xpos + MAX(w - offset, 0);
953 lcd_fillrect(xrect, ypos, LCD_WIDTH - xrect, h);
953 drawmode = lastmode; 954 drawmode = lastmode;
954} 955}
955 956