diff options
| author | mark9064 <30447455+mark9064@users.noreply.github.com> | 2024-08-29 16:39:55 +0100 |
|---|---|---|
| committer | mark9064 <30447455+mark9064@users.noreply.github.com> | 2025-10-10 11:42:32 +0100 |
| commit | 8422923ea0ade3d822eaa40685ad5c465a630bf9 (patch) | |
| tree | 5f41e0668b7be9cbb4bfbf76279f008b06decf05 /src/displayapp/screens | |
| parent | 0881edd2e6404a21224af2667e8becddf188cf24 (diff) | |
Resolve paint corrupting screen scrolling
Diffstat (limited to 'src/displayapp/screens')
| -rw-r--r-- | src/displayapp/screens/InfiniPaint.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp index 1d6be979..958d7939 100644 --- a/src/displayapp/screens/InfiniPaint.cpp +++ b/src/displayapp/screens/InfiniPaint.cpp @@ -61,12 +61,17 @@ bool InfiniPaint::OnTouchEvent(Pinetime::Applications::TouchEvents event) { } bool InfiniPaint::OnTouchEvent(uint16_t x, uint16_t y) { + // If currently scrolling in or out of InfiniPaint, don't paint anything! + // Since InfiniPaint writes directly to the display bypassing LVGL, painting + // while scrolling is happening causes bad behaviour + if (lvgl.IsScrolling()) { + return false; + } lv_area_t area; area.x1 = x - (width / 2); area.y1 = y - (height / 2); area.x2 = x + (width / 2) - 1; area.y2 = y + (height / 2) - 1; - lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::None); lvgl.FlushDisplay(&area, b); return true; } |
