From 3dbdfe0e32e0b1e53af056a6c746142d16c4f01a Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Tue, 2 Sep 2025 16:56:29 +0200 Subject: [PATCH] Fix inability to zoom on the edges of an image when the initially displayed image has a different width/height ratio --- .../java/org/fairscan/app/view/DocumentScreen.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/fairscan/app/view/DocumentScreen.kt b/app/src/main/java/org/fairscan/app/view/DocumentScreen.kt index 8209338..7143d71 100644 --- a/app/src/main/java/org/fairscan/app/view/DocumentScreen.kt +++ b/app/src/main/java/org/fairscan/app/view/DocumentScreen.kt @@ -42,6 +42,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableIntState import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -51,7 +52,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import net.engawapg.lib.zoomable.rememberZoomState +import net.engawapg.lib.zoomable.ZoomState import net.engawapg.lib.zoomable.zoomable import org.fairscan.app.Navigation import org.fairscan.app.R @@ -138,13 +139,12 @@ private fun DocumentPreview( val bitmap = document.load(currentPageIndex.intValue) if (bitmap != null) { val imageBitmap = bitmap.asImageBitmap() - val zoomState = rememberZoomState( - contentSize = Size(bitmap.width.toFloat(), bitmap.height.toFloat()) - ) - - LaunchedEffect(imageId) { - zoomState.reset() + val zoomState = remember(imageId) { + ZoomState( + contentSize = Size(bitmap.width.toFloat(), bitmap.height.toFloat()) + ) } + Box(modifier = Modifier .fillMaxSize(0.92f) .align(Alignment.Center)) {