fix(qs): NotificationItem polish() loop on Qt 6.11

summaryText.Layout.fillWidth depended on summaryRow.implicitWidth,
its own parent RowLayout, creating a circular dependency:

  summaryText.Layout.fillWidth
    -> changes summaryText.width
    -> changes summaryRow.implicitWidth
    -> re-evaluates summaryText.Layout.fillWidth (loop)

Qt 6.10 tolerated this through layout settling heuristics, but
Qt 6.11.1 detects the loop and emits "ColumnLayout called polish()
inside updatePolish() of ColumnLayout" warnings repeatedly, pinning
CPU at 100% and freezing the sidebar/notification UI when opened.

Use root.width (the stable width inherited from the parent ListView)
as the reference for the elision threshold instead of the recursive
summaryRow.implicitWidth.
This commit is contained in:
RamonBritoDev
2026-05-21 16:23:40 +00:00
parent c1b37bc467
commit 6eaa869fac
@@ -153,7 +153,7 @@ Item { // Notification item area
implicitHeight: summaryText.implicitHeight
StyledText {
id: summaryText
Layout.fillWidth: summaryTextMetrics.width >= summaryRow.implicitWidth * root.summaryElideRatio
Layout.fillWidth: summaryTextMetrics.width >= root.width * root.summaryElideRatio
visible: !root.onlyNotification
font.pixelSize: root.fontSize
color: Appearance.colors.colOnLayer3