aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens
diff options
context:
space:
mode:
authormark9064 <30447455+mark9064@users.noreply.github.com>2024-08-29 16:39:55 +0100
committermark9064 <30447455+mark9064@users.noreply.github.com>2025-10-10 11:42:32 +0100
commit8422923ea0ade3d822eaa40685ad5c465a630bf9 (patch)
tree5f41e0668b7be9cbb4bfbf76279f008b06decf05 /src/displayapp/screens
parent0881edd2e6404a21224af2667e8becddf188cf24 (diff)
Resolve paint corrupting screen scrolling
Diffstat (limited to 'src/displayapp/screens')
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp7
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;
}