From e9249c924ceb41b8f45c9704ef330fa2661568e8 Mon Sep 17 00:00:00 2001 From: nrobi144 Date: Tue, 17 Mar 2026 16:27:57 +0200 Subject: [PATCH] fix(media): only show video controls on hover Controls (play button, seek bar, volume) are hidden by default and appear when the mouse enters the video area. They auto-hide 2s after the mouse leaves. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../amethyst/desktop/ui/media/VideoControls.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/media/VideoControls.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/media/VideoControls.kt index b57e6cb43..f6fd3db4b 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/media/VideoControls.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/media/VideoControls.kt @@ -83,16 +83,16 @@ fun VideoControls( onViewModeChange: ((ViewMode) -> Unit)? = null, trailingControls: @Composable (() -> Unit)? = null, ) { - var showControls by remember { mutableStateOf(true) } var hovering by remember { mutableStateOf(false) } + var showControls by remember { mutableStateOf(false) } - // Auto-hide controls after 2s when playing - LaunchedEffect(isPlaying, hovering) { - if (isPlaying && !hovering) { + // Show controls on hover, auto-hide 2s after mouse leaves + LaunchedEffect(hovering) { + if (hovering) { + showControls = true + } else { delay(2000) showControls = false - } else { - showControls = true } } @@ -119,14 +119,14 @@ fun VideoControls( } }, ) { - // Center play/buffering indicator + // Center play/buffering indicator — only on hover if (isBuffering) { CircularProgressIndicator( modifier = Modifier.align(Alignment.Center).size(48.dp), color = Color.White, strokeWidth = 3.dp, ) - } else if (!isPlaying) { + } else if (!isPlaying && showControls) { IconButton( onClick = onPlayPause, modifier = Modifier.align(Alignment.Center).size(64.dp),