diff --git a/radio/src/gui/9x/lcd.cpp b/radio/src/gui/9x/lcd.cpp index 0b83a84a7..ec0d97b75 100644 --- a/radio/src/gui/9x/lcd.cpp +++ b/radio/src/gui/9x/lcd.cpp @@ -441,9 +441,9 @@ void lcdDrawNumber(coord_t x, coord_t y, lcdint_t val, LcdFlags flags, uint8_t l } else if (smlsize) { x -= 2; - lcdDrawPoint(x+1, y+5); + lcdDrawPoint(x, y+5); if ((flags&INVERS) && ((~flags & BLINK) || BLINK_ON_PHASE)) { - lcdDrawSolidVerticalLine(x+1, y, 7); + lcdDrawSolidVerticalLine(x, y-1, 8); } } else if (tinsize) { diff --git a/radio/src/gui/taranis/lcd.cpp b/radio/src/gui/taranis/lcd.cpp index 6553310ad..bbea48118 100644 --- a/radio/src/gui/taranis/lcd.cpp +++ b/radio/src/gui/taranis/lcd.cpp @@ -407,7 +407,7 @@ void lcdDrawNumber(coord_t x, coord_t y, int32_t val, LcdFlags flags, uint8_t le x -= 2; lcdDrawPoint(x, y+5); if ((flags&INVERS) && ((~flags & BLINK) || BLINK_ON_PHASE)) { - lcdDrawSolidVerticalLine(x-1, y, 7); + lcdDrawSolidVerticalLine(x, y-1, 8); } } else if (tinsize) { diff --git a/radio/src/tests/SmlsizeDecimalPoint_128x64.png b/radio/src/tests/SmlsizeDecimalPoint_128x64.png new file mode 100644 index 000000000..790e83f42 Binary files /dev/null and b/radio/src/tests/SmlsizeDecimalPoint_128x64.png differ diff --git a/radio/src/tests/SmlsizeDecimalPoint_212x64.png b/radio/src/tests/SmlsizeDecimalPoint_212x64.png new file mode 100644 index 000000000..ce13667dc Binary files /dev/null and b/radio/src/tests/SmlsizeDecimalPoint_212x64.png differ diff --git a/radio/src/tests/lcd.cpp b/radio/src/tests/lcd.cpp index 1f27bad18..926fe07f6 100644 --- a/radio/src/tests/lcd.cpp +++ b/radio/src/tests/lcd.cpp @@ -194,6 +194,16 @@ TEST(Lcd, vline_x_lt0) #endif #if defined(CPUARM) +TEST(Lcd, SmlsizeDecimalPoint) +{ + lcdClear(); + lcdDrawNumber(0, 1, 105, PREC1|SMLSIZE|LEFT); + lcdDrawNumber(0, LCD_H-7, 105, PREC1|SMLSIZE|LEFT|INVERS); + lcdDrawNumber(LCD_W, 1, 105, PREC2|SMLSIZE); + lcdDrawNumber(LCD_W, LCD_H-7, 105, PREC2|SMLSIZE|INVERS); + EXPECT_TRUE(checkScreenshot("SmlsizeDecimalPoint")); +} + TEST(Lcd, Smlsize) { lcdClear();