diff --git a/radio/src/thirdparty/libopenui/src/bitmapbuffer.h b/radio/src/thirdparty/libopenui/src/bitmapbuffer.h index 6d661ff16..93b88a1e5 100755 --- a/radio/src/thirdparty/libopenui/src/bitmapbuffer.h +++ b/radio/src/thirdparty/libopenui/src/bitmapbuffer.h @@ -430,5 +430,9 @@ class BitmapBuffer: public BitmapBufferBase bool liangBarskyClipper(coord_t& x1, coord_t& y1, coord_t& x2, coord_t& y2); }; +// Back buffer to draw extern BitmapBuffer * lcd; +// Buffer currently on display +extern BitmapBuffer * lcdFront; + diff --git a/radio/src/thirdparty/libopenui/src/mainwindow.cpp b/radio/src/thirdparty/libopenui/src/mainwindow.cpp index 03c761bd2..d535fdafc 100644 --- a/radio/src/thirdparty/libopenui/src/mainwindow.cpp +++ b/radio/src/thirdparty/libopenui/src/mainwindow.cpp @@ -104,13 +104,10 @@ bool MainWindow::refresh() if (invalidatedRect.w) { if (invalidatedRect.x > 0 || invalidatedRect.y > 0 || invalidatedRect.w < LCD_W || invalidatedRect.h < LCD_H) { TRACE_WINDOWS("Refresh rect: left=%d top=%d width=%d height=%d", invalidatedRect.left(), invalidatedRect.top(), invalidatedRect.w, invalidatedRect.h); - const BitmapBuffer * previous = lcd; - lcdNextLayer(); - lcdCopy(lcd->getData(), previous->getData()); + lcdCopy(lcd->getData(), lcdFront->getData()); } else { TRACE_WINDOWS("Refresh full screen"); - lcdNextLayer(); } lcd->setOffset(0, 0); lcd->setClippingRect(invalidatedRect.left(), invalidatedRect.right(), invalidatedRect.top(), invalidatedRect.bottom());