Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support
LineHeightStyle.Trim
(#897)
## Proposed Changes - Set `ParagraphStyle.heightMode` based on `LineHeightStyle.Trim` value - Align default behavior with Android - Avoid using `StrutStyle` - it doesn't allow the line height trimming. Set `height` via `TextStyle` instead - Cache and post-process `lineMetrics` - Port tests from an Android source set ## Behaviour change In case of larger `lineHeight`, both paddings are trimmed by default to match the Android behaviour. ## Testing Test: run tests from `DesktopParagraphIntegrationLineHeightStyleTest` ```kt Row(horizontalArrangement = Arrangement.spacedBy(5.dp)) { for (lineHeightStyle in listOf( null, LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.Both), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.FirstLineTop), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.LastLineBottom), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.None), )) { Text("Line 1\nLine 2", modifier = Modifier.background(Color.Gray), style = TextStyle( fontSize = 18.sp, lineHeight = 50.sp, lineHeightStyle = lineHeightStyle ) ) } } ``` Before | After --- | --- <img width="285" alt="Screenshot 2023-11-08 at 13 38 08" src="https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/2c7fbddc-dac9-408e-ad53-cedc361fe777"> | <img width="285" alt="Screenshot 2023-11-08 at 13 37 45" src="https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/4fe4d7c9-a414-4338-885f-6701e6daecf1"> ## Issues Fixed Fixes (partially) JetBrains/compose-multiplatform#2602 Fixes JetBrains/compose-multiplatform#3866
- Loading branch information