lets-plot-compose/src/androidMain/kotlin/org/jetbrains/letsPlot/compose/PlotPanelComposeCanvas.kt [141:170]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Box( modifier = finalModifier .weight(1f) // Take the remaining vertical space .fillMaxWidth() // Fill available width .onSizeChanged { newSize -> // Convert logical pixels (from Compose layout) to physical pixels (plot SVG pixels) panelSize = DoubleVector(newSize.width / density, newSize.height / density) } ) { val errMsg = errorMessage if (errMsg != null) { // Show error message BasicTextField( value = errMsg, onValueChange = { }, readOnly = true, textStyle = errorTextStyle, modifier = errorModifier ) } else { // Render the plot LaunchedEffect(panelSize, processedPlotSpec, specOverrideList, preserveAspectRatio) { if (PlotConfig.isFailure(processedPlotSpec)) { errorMessage = PlotConfig.getErrorMessage(processedPlotSpec) return@LaunchedEffect } runCatching { if (panelSize != DoubleVector.ZERO) { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - lets-plot-compose/src/desktopMain/kotlin/org/jetbrains/letsPlot/compose/PlotPanelSwingComponent.kt [102:131]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Box( modifier = finalModifier .weight(1f) // Take the remaining vertical space .fillMaxWidth() // Fill available width .onSizeChanged { newSize -> // Convert logical pixels (from Compose layout) to physical pixels (plot SVG pixels) panelSize = DoubleVector(newSize.width / density, newSize.height / density) } ) { val errMsg = errorMessage if (errMsg != null) { // Show error message BasicTextField( value = errMsg, onValueChange = { }, readOnly = true, textStyle = errorTextStyle, modifier = errorModifier ) } else { // Render the plot LaunchedEffect(panelSize, processedPlotSpec, specOverrideList, preserveAspectRatio) { if (PlotConfig.isFailure(processedPlotSpec)) { errorMessage = PlotConfig.getErrorMessage(processedPlotSpec) return@LaunchedEffect } runCatching { if (panelSize != DoubleVector.ZERO) { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -