diff --git a/lib/EpdRenderer/EpdRenderer.cpp b/lib/EpdRenderer/EpdRenderer.cpp index f4b9a83..3180304 100644 --- a/lib/EpdRenderer/EpdRenderer.cpp +++ b/lib/EpdRenderer/EpdRenderer.cpp @@ -118,7 +118,7 @@ void EpdRenderer::clearScreen(const bool black) const { display->fillScreen(black ? GxEPD_BLACK : GxEPD_WHITE); } -void EpdRenderer::flushDisplay() const { display->display(true); } +void EpdRenderer::flushDisplay(const bool partialUpdate) const { display->display(partialUpdate); } void EpdRenderer::flushArea(int x, int y, int width, int height) const { // TODO: Fix diff --git a/lib/EpdRenderer/EpdRenderer.h b/lib/EpdRenderer/EpdRenderer.h index 0e058c6..72ee7c3 100644 --- a/lib/EpdRenderer/EpdRenderer.h +++ b/lib/EpdRenderer/EpdRenderer.h @@ -33,7 +33,7 @@ class EpdRenderer { void drawRect(int x, int y, int width, int height, uint16_t color) const; void fillRect(int x, int y, int width, int height, uint16_t color) const; void clearScreen(bool black = false) const; - void flushDisplay() const; + void flushDisplay(bool partialUpdate = true) const; void flushArea(int x, int y, int width, int height) const; int getPageWidth() const; diff --git a/src/screens/FullScreenMessageScreen.cpp b/src/screens/FullScreenMessageScreen.cpp index b36f37d..b2d8f90 100644 --- a/src/screens/FullScreenMessageScreen.cpp +++ b/src/screens/FullScreenMessageScreen.cpp @@ -10,5 +10,6 @@ void FullScreenMessageScreen::onEnter() { renderer->clearScreen(invert); renderer->drawText(left, top, text.c_str(), bold, italic, invert ? 0 : 1); - renderer->flushDisplay(); + // If inverted, do a full screen update to ensure no ghosting + renderer->flushDisplay(!invert); }