From b5f61e9ca035cf62bf70bce840149935ed6a37ab Mon Sep 17 00:00:00 2001 From: "Evgeniy.Zhelenskiy" Date: Sun, 7 Apr 2024 08:47:28 +0200 Subject: [PATCH] Fix min constraints --- .../kotlin/editor/basic/BasicSourceCodeTextField.kt | 10 +++++++--- .../src/commonMain/kotlin/editor/basic/Decorators.kt | 2 +- gradle.properties | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/editor/src/commonMain/kotlin/editor/basic/BasicSourceCodeTextField.kt b/editor/src/commonMain/kotlin/editor/basic/BasicSourceCodeTextField.kt index 92666a3..50b4feb 100644 --- a/editor/src/commonMain/kotlin/editor/basic/BasicSourceCodeTextField.kt +++ b/editor/src/commonMain/kotlin/editor/basic/BasicSourceCodeTextField.kt @@ -271,7 +271,7 @@ public val defaultLineNumberModifier: Modifier = Modifier.padding(start = 4.dp, @Composable @PublishedApi -internal fun Wrapper(content: @Composable (@Composable () -> Unit) -> Unit, inner: @Composable () -> Unit) { +internal fun T.Wrapper(content: @Composable T.(@Composable T.() -> Unit) -> Unit, inner: @Composable T.() -> Unit) { var called = false content { require(!called) { "Cannot call inner more than once!" } @@ -289,8 +289,8 @@ public fun BasicSourceCodeTextField( onStateUpdate: (new: BasicSourceCodeTextFieldState) -> Unit, preprocessors: List = emptyList(), tokenize: Tokenizer, - additionalInnerComposable: @Composable (BoxWithConstraintsScope.(textLayoutResult: TextLayoutResult?, inner: @Composable () -> Unit) -> Unit) = { _, _ -> }, - additionalOuterComposable: @Composable (BoxWithConstraintsScope.(textLayoutResult: TextLayoutResult?, inner: @Composable () -> Unit) -> Unit) = { _, _ -> }, + additionalInnerComposable: @Composable (BoxWithConstraintsScope.(textLayoutResult: TextLayoutResult?, inner: @Composable BoxWithConstraintsScope.() -> Unit) -> Unit) = { _, _ -> }, + additionalOuterComposable: @Composable (BoxWithConstraintsScope.(textLayoutResult: TextLayoutResult?, inner: @Composable BoxWithConstraintsScope.() -> Unit) -> Unit) = { _, _ -> }, textStyle: TextStyle = TextStyle.Default.copy(fontFamily = FontFamily.Monospace), cursorBrush: Brush = SolidColor(Color.Black), showLineNumbers: Boolean = true, @@ -318,13 +318,17 @@ public fun BasicSourceCodeTextField( val innerTopPadding = innerPadding.calculateTopPadding() val innerBottomPadding = innerPadding.calculateBottomPadding() + val innerStartPadding = innerPadding.calculateStartPadding(LocalLayoutDirection.current) + val innerEndPadding = innerPadding.calculateEndPadding(LocalLayoutDirection.current) BoxWithConstraints(modifier) { val editorOuterHeight = maxHeight - innerBottomPadding - innerTopPadding val editorOuterMinHeight = minHeight - innerBottomPadding - innerTopPadding + val editorOuterMinWidth = maxWidth - innerEndPadding - innerStartPadding val editorOuterHeightPx = with(LocalDensity.current) { editorOuterHeight.toPx() } Wrapper( content = { innerComposable -> + Box(Modifier.size(editorOuterMinWidth, editorOuterMinHeight)) additionalOuterComposable(textLayout, innerComposable) } ) { diff --git a/editor/src/commonMain/kotlin/editor/basic/Decorators.kt b/editor/src/commonMain/kotlin/editor/basic/Decorators.kt index 80cfac0..fc23fe5 100644 --- a/editor/src/commonMain/kotlin/editor/basic/Decorators.kt +++ b/editor/src/commonMain/kotlin/editor/basic/Decorators.kt @@ -193,7 +193,7 @@ public inline fun BoxWithConst crossinline stickyHeaderLinesChooser: (Bracket) -> IntRange? = { bracket -> state.tokenLines[bracket as T] }, crossinline onClick: (lineNumber: Int) -> Unit = {}, crossinline onHoveredSourceCodePositionChange: (position: SourceCodePosition) -> Unit = {}, - crossinline additionalInnerComposable: @Composable BoxWithConstraintsScope.(linesToWrite: Map, inner: @Composable () -> Unit) -> Unit = { _, _ -> }, + crossinline additionalInnerComposable: @Composable BoxWithConstraintsScope.(linesToWrite: Map, inner: @Composable BoxWithConstraintsScope.() -> Unit) -> Unit = { _, _ -> }, ) { val measuredText = measureText(textStyle) val textHeightDp = with(LocalDensity.current) { measuredText.height.toDp() } diff --git a/gradle.properties b/gradle.properties index 4511c6f..bc842c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,4 @@ development=true #Publication group=com.zhelenskiy -version=0.0.8 +version=0.0.10