From 8acfdec2246bbacfad6d1c1576e95afdb53a3e33 Mon Sep 17 00:00:00 2001 From: Sven Jacobs Date: Sun, 19 Jan 2025 15:53:12 +0100 Subject: [PATCH] fix: reset overlay content when Reveal composable is disposed (#197) --- .../commonMain/kotlin/com/svenjacobs/reveal/Reveal.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/reveal-core/src/commonMain/kotlin/com/svenjacobs/reveal/Reveal.kt b/reveal-core/src/commonMain/kotlin/com/svenjacobs/reveal/Reveal.kt index df27479..86f3943 100644 --- a/reveal-core/src/commonMain/kotlin/com/svenjacobs/reveal/Reveal.kt +++ b/reveal-core/src/commonMain/kotlin/com/svenjacobs/reveal/Reveal.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue @@ -158,6 +159,14 @@ public fun Reveal( } } } + + // When the Reveal composable is disposed we need to reset overlayContent or else the effect + // might remain on the screen (issue #196). + DisposableEffect(Unit) { + onDispose { + revealCanvasState.overlayContent = null + } + } } public typealias OnClickListener = (key: Key) -> Unit