Month-view event titles no longer truncate with "…". `MonthBar` — the single chip renderer for every month style and for the drag's floating copy — now uses `TextOverflow.Clip` with `softWrap = false`, so a title runs to the chip's edge and clips mid-glyph instead of spending two characters' width on an ellipsis. `softWrap = false` is load-bearing: `Clip` on its own still breaks a `maxLines = 1` line at the last whole word, so "Team standup meeting" would render as "Team" — less title than the ellipsis showed, not more. Deviation from the issue: right-to-left layouts keep the ellipsis. With `softWrap` off Compose lays the line out at its full intrinsic width and clips to the node's left edge, which in RTL is the *end* of the string — an Arabic title would have lost its beginning. `Ellipsis` truncates at the logical end in both directions, so RTL keeps it. The Glance month widget needs nothing: its `Text` has no overflow parameter, and a RemoteViews `TextView` with `maxLines = 1` and no ellipsize already clips. Closes #164 Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de> Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/183
This commit is contained in:
@@ -2352,11 +2352,21 @@ private fun MonthBar(
|
||||
},
|
||||
contentAlignment = Alignment.CenterStart,
|
||||
) {
|
||||
// Clipping only keeps the start of the title in an LTR layout: with
|
||||
// softWrap off Compose lays the line out at its full width and clips to
|
||||
// the chip's *left* edge, which in RTL is the end of the string. So RTL
|
||||
// keeps the ellipsis, which truncates at the logical end either way.
|
||||
val rtl = LocalLayoutDirection.current == LayoutDirection.Rtl
|
||||
Text(
|
||||
text = title,
|
||||
style = MaterialTheme.typography.labelSmall,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
// No "…" (#164): the chip is narrow enough that the ellipsis costs a
|
||||
// couple of readable characters. softWrap is off with it — left on,
|
||||
// a clipped line breaks at the last whole word instead of running to
|
||||
// the chip's edge, which reads as *less* title, not more.
|
||||
overflow = if (rtl) TextOverflow.Ellipsis else TextOverflow.Clip,
|
||||
softWrap = rtl,
|
||||
color = eventInk(fill),
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user