From 192420893d99f0975d5d40d7a5db68314556a40e Mon Sep 17 00:00:00 2001 From: Ivan Matkov Date: Wed, 3 Apr 2024 14:07:03 +0200 Subject: [PATCH] Remove usage of `MultiLayerComposeScene.compositionLocalContext` --- .../ui/scene/MultiLayerComposeScene.skiko.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/MultiLayerComposeScene.skiko.kt b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/MultiLayerComposeScene.skiko.kt index fd0132d8b56b8..5c00300f4aaaf 100644 --- a/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/MultiLayerComposeScene.skiko.kt +++ b/compose/ui/ui/src/skikoMain/kotlin/androidx/compose/ui/scene/MultiLayerComposeScene.skiko.kt @@ -516,7 +516,13 @@ private class MultiLayerComposeSceneImpl( * This scenario is important when user code relies on hover events to show tooltips. */ override var boundsInWindow: IntRect by mutableStateOf(IntRect.Zero) + + @Deprecated( + message = "Should not be used in this implementation", + level = DeprecationLevel.ERROR + ) override var compositionLocalContext: CompositionLocalContext? = null + override var scrimColor: Color? by mutableStateOf(null) override var focusable: Boolean = focusable set(value) { @@ -581,7 +587,14 @@ private class MultiLayerComposeSceneImpl( composition?.dispose() composition = owner.setContent( parent = this@AttachedComposeSceneLayer.compositionContext, - { this@AttachedComposeSceneLayer.compositionLocalContext } + { + /* + * Do not use `compositionLocalContext` here - composition locals already + * available from `compositionContext` and explicitly overriding it might cause + * issues. See https://github.com/JetBrains/compose-multiplatform/issues/4558 + */ + null + } ) { owner.setRootModifier(background then keyInput) content()