From 32ab9a15e1d3c022249f4542f8a465f3d2bf3657 Mon Sep 17 00:00:00 2001 From: Suhas Dissanayake Date: Mon, 28 Aug 2023 19:10:12 +0530 Subject: [PATCH] Fix image panning bug ( closes #33 ) --- .../ui/screens/secondary/PhotoView.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/app/suhasdissa/memerize/ui/screens/secondary/PhotoView.kt b/app/src/main/java/app/suhasdissa/memerize/ui/screens/secondary/PhotoView.kt index 676a72d..527c03b 100644 --- a/app/src/main/java/app/suhasdissa/memerize/ui/screens/secondary/PhotoView.kt +++ b/app/src/main/java/app/suhasdissa/memerize/ui/screens/secondary/PhotoView.kt @@ -137,14 +137,18 @@ fun PhotoView( awaitFirstDown() do { val event = awaitPointerEvent() - scale *= event.calculateZoom() - scale = max(scale, 1f) - val offset = event.calculatePan() - - val w = size.width * (scale - 1f) / 2 - offsetX = (offsetX + offset.x).coerceIn(-w, w) - val h = size.height * (scale - 1f) / 2 - offsetY = (offsetY + offset.y).coerceIn(-h, h) + if (event.changes.size >= 2) { + scale *= event.calculateZoom() + scale = max(scale, 1f) + val offset = event.calculatePan() + val w = size.width * (scale - 1f) / 2 + offsetX = (offsetX + offset.x).coerceIn(-w, w) + val h = size.height * (scale - 1f) / 2 + offsetY = (offsetY + offset.y).coerceIn(-h, h) + event.changes.forEach { + it.consume() + } + } } while (event.changes.any { it.pressed }) } },