diff options
-rw-r--r-- | firmware/drivers/lcd-16bit.c | 5 | ||||
-rw-r--r-- | firmware/drivers/lcd-2bit-horz.c | 5 | ||||
-rw-r--r-- | firmware/drivers/lcd-h100-remote.c | 6 | ||||
-rw-r--r-- | firmware/drivers/lcd-h100.c | 5 | ||||
-rw-r--r-- | firmware/drivers/lcd-recorder.c | 5 |
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) | |||
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 | ||
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) | |||
747 | void lcd_puts_style_offset(int x, int y, const unsigned char *str, | 747 | void 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) | |||
1210 | void lcd_remote_puts_style_offset(int x, int y, const unsigned char *str, | 1210 | void 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) | |||
1081 | void lcd_puts_style_offset(int x, int y, const unsigned char *str, | 1081 | void 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) | |||
933 | void lcd_puts_style_offset(int x, int y, const unsigned char *str, | 933 | void 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 | ||