diff --git a/CHANGELOG.md b/CHANGELOG.md index 399b5d9..5da84d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Month-view event titles no longer end in an ellipsis. The "…" took the width + of a couple of characters and told you nothing you couldn't already see, so + the title now simply runs to the edge of its chip — a few more letters per + cell, which is often the difference between two events you can tell apart and + two you can't ([#164]). + ## [2.19.1] — 2026-08-11 ### Added @@ -1414,3 +1421,4 @@ automatically, with zero telemetry and no internet permission. [#123]: https://codeberg.org/jlmakiola/calendula/issues/123 [#163]: https://codeberg.org/jlmakiola/calendula/issues/163 [#173]: https://codeberg.org/jlmakiola/calendula/issues/173 +[#164]: https://codeberg.org/jlmakiola/calendula/issues/164 diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/month/MonthScreen.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/month/MonthScreen.kt index ffcccf6..d207c51 100644 --- a/app/src/main/java/de/jeanlucmakiola/calendula/ui/month/MonthScreen.kt +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/month/MonthScreen.kt @@ -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), ) }