in platf-android/src/androidMain/kotlin/org/jetbrains/letsPlot/android/canvas/CanvasView.kt [137:159]
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
val density = resources.displayMetrics.density
val figureWidthInDp = figure?.width ?: 0
val figureHeightInDp = figure?.height ?: 0
val desiredWidth = (figureWidthInDp * density).toInt()
val desiredHeight = (figureHeightInDp * density).toInt()
val finalWidth = when (MeasureSpec.getMode(widthMeasureSpec)) {
MeasureSpec.EXACTLY -> MeasureSpec.getSize(widthMeasureSpec)
MeasureSpec.AT_MOST -> minOf(desiredWidth, MeasureSpec.getSize(widthMeasureSpec))
else -> desiredWidth
}
val finalHeight = when (MeasureSpec.getMode(heightMeasureSpec)) {
MeasureSpec.EXACTLY -> MeasureSpec.getSize(heightMeasureSpec)
MeasureSpec.AT_MOST -> minOf(desiredHeight, MeasureSpec.getSize(heightMeasureSpec))
else -> desiredHeight
}
setMeasuredDimension(finalWidth, finalHeight)
}