https://bugs.kde.org/show_bug.cgi?id=513272

cwo <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/plasma-desktop/-/commit/
                   |                            |b1823bb170e3869fdaf75391803
                   |                            |fae748f82b3dd
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #2 from cwo <[email protected]> ---
Git commit b1823bb170e3869fdaf75391803fae748f82b3dd by Christoph Wolk.
Committed on 01/01/2026 at 21:32.
Pushed by cwo into branch 'master'.

applets/kickoff: correctly position New badge with long names

Kickoff's list delegates set the label name to Layout.fillWidth true if
and only if the description is not visible. As far as I can tell, this
is to support the compact mode, to ensure that as much of the name is
visible as possible, and the description is cut completely if necessary.
This means that with a description present, the label can grow without
bounds, and because of the upward propagation of implicit sizes and the
precise way that nested Layouts interact with this, setting Layout.fill
on the GridLayout will not limit this to the actually available width.
To keep this in check a maximum size is calculated by hand
to match the delegate width.

This is a somewhat unusual construction, and it's not trivial to notice
that adding something else to the delegate would mean that this
calculation has to be updated. As was the case with the New badge for
freshly installed applications - if the name is very long and only the
name is visible, everything is fine, but if both name and description
are present, the label is pushed partially or completely outside the
bounds of the delegate.

We could simply add the relevant width to the calculation, but this
leaves a trap for any future addition to the delegate. Instead,we fix
the cause of the problem, the propagation of implicit sizes, by wrapping
the gradLayout inside an Item (which is sized as usual by the parent
Layout, without regard to the implicitWidth of its contents). This allows
us to remove the manual size calculation with a much simpler and more
robust binding to the minimum of wrapper width and name implicit width,
and should work without further modifications if more badges or other
elements are added in the future.

M  +1    -1    applets/kickoff/AbstractKickoffItemDelegate.qml
M  +44   -37   applets/kickoff/KickoffListDelegate.qml

https://invent.kde.org/plasma/plasma-desktop/-/commit/b1823bb170e3869fdaf75391803fae748f82b3dd

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to