From 516601fd64b7eb988857db68bd85a6046a4cf44e Mon Sep 17 00:00:00 2001 From: cgspine Date: Thu, 24 Feb 2022 17:01:16 +0800 Subject: [PATCH] bugfix: click through mask. --- .../com/qmuiteam/compose/modal/ModalImpl.kt | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/compose/src/main/java/com/qmuiteam/compose/modal/ModalImpl.kt b/compose/src/main/java/com/qmuiteam/compose/modal/ModalImpl.kt index 54b7614e..2b86ffac 100644 --- a/compose/src/main/java/com/qmuiteam/compose/modal/ModalImpl.kt +++ b/compose/src/main/java/com/qmuiteam/compose/modal/ModalImpl.kt @@ -130,20 +130,24 @@ internal class StillModalImpl( @Composable override fun ModalContent(visible: Boolean, dismissFinishAction: () -> Unit) { if (visible) { - var modifier = Modifier - .fillMaxSize() - .background(mask) - if (maskCancellable) { - modifier = modifier.clickable( - interactionSource = remember { MutableInteractionSource() }, - indication = null - ) { - dismiss() + Box( + modifier = Modifier + .fillMaxSize() + .background(mask) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + enabled = maskCancellable + ) { + dismiss() + } + ) + } else { + DisposableEffect("") { + onDispose { + dismissFinishAction() } } - Box(modifier = modifier) - } else { - dismissFinishAction() } } } @@ -165,18 +169,16 @@ internal class AnimateModalImpl( enter = fadeIn(tween(durationMillis), 0f), exit = fadeOut(tween(durationMillis), 0f) ) { - var modifier = Modifier + Box(modifier = Modifier .fillMaxSize() .background(mask) - if (maskCancellable) { - modifier = modifier.clickable( + .clickable( interactionSource = remember { MutableInteractionSource() }, - indication = null + indication = null, + enabled = maskCancellable ) { dismiss() - } - } - Box(modifier = modifier) + }) content(this@AnimateModalImpl) DisposableEffect("") { onDispose {