From 7b28c87f2cf8c48c81233aeee4d3ea39031647f1 Mon Sep 17 00:00:00 2001 From: Kyle Bolen Date: Thu, 30 Jul 2026 06:09:15 +0000 Subject: [PATCH] Fix preview dialog: scrollable + cap video height at 200dp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dialog content is now scrollable so buttons are always reachable. Video player capped at 200dp height — no longer pushes buttons off screen when the JavaFX panel expands. --- .../kotlin/com/bolenpad/photophetch/ui/BrowseScreen.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/bolenpad/photophetch/ui/BrowseScreen.kt b/src/main/kotlin/com/bolenpad/photophetch/ui/BrowseScreen.kt index 89c5c32..c67458e 100644 --- a/src/main/kotlin/com/bolenpad/photophetch/ui/BrowseScreen.kt +++ b/src/main/kotlin/com/bolenpad/photophetch/ui/BrowseScreen.kt @@ -4,6 +4,8 @@ import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.filled.Warning @@ -408,7 +410,9 @@ private fun PhotoPreviewDialog( Dialog(onDismissRequest = onDismiss) { Card(modifier = Modifier.fillMaxWidth(0.85f)) { - Column(modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp)) { + Column(modifier = Modifier.padding(16.dp) + .verticalScroll(rememberScrollState()), + verticalArrangement = Arrangement.spacedBy(8.dp)) { Row(verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { @@ -461,7 +465,7 @@ private fun PhotoPreviewDialog( Spacer(Modifier.height(2.dp)) LivePhotoPlayer( videoPath = mov, - modifier = Modifier.fillMaxWidth().aspectRatio(16f / 9f), + modifier = Modifier.fillMaxWidth().height(200.dp), ) } else if (photo.isLivePhotoStill && mov == null && movPath == null) { Text("⏳ Loading motion clip…",