From 8422923ea0ade3d822eaa40685ad5c465a630bf9 Mon Sep 17 00:00:00 2001 From: mark9064 <30447455+mark9064@users.noreply.github.com> Date: Thu, 29 Aug 2024 16:39:55 +0100 Subject: Resolve paint corrupting screen scrolling --- src/displayapp/screens/InfiniPaint.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/displayapp/screens') 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; } -- cgit v1.2.3-70-g09d2