https://bugs.kde.org/show_bug.cgi?id=522322
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #4 from [email protected] --- I can reproduce this on Plasma 6.7.4 (Arch Linux, X11, i3 as window manager instead of KWin) and tracked down the cause. It is a regression in the pager widget's QML from 6.6.0, not a kwinrc problem. Reproduction without KWin: i3 only exposes existing workspaces as virtual desktops, e.g. _NET_DESKTOP_NAMES = "1", "6", "7", "8", "9". Close workspace 7 and open workspace 10: there are still five desktops, but the names are now "1", "6", "8", "9", "10" (xprop -root _NET_DESKTOP_NAMES confirms this). The pager keeps showing 1 6 7 8 9 until the number of desktops changes or plasmashell is restarted. Renaming a desktop in System Settings, as in the original report, is the same situation: names change, count doesn't. Cause: commit 865364c0b ("applets/pager: linting", MR !3333, first released in 6.6.0) changed how the desktop label is created in applets/pager/qml/main.qml: - desktopLabelComponent.createObject(desktop, { index, model, desktopFrame }); + desktopLabelComponent.createObject(desktop, { index, display: desktop.display, desktopFrame }); Before, the label got the model object and bound its text to model.display. Now it gets the name as a plain initial property value, which is copied once and never updated. PagerModel resets itself (recreating the labels) when the number of desktops changes, but when only the names change it just emits dataChanged(DisplayRole). On X11 that comes from KX11Extras::desktopNamesChanged; on Wayland from PlasmaVirtualDesktop::done, which only emits desktopNamesChanged in libtaskmanager. So the existing labels keep their old text on both platforms. The same commit did the same to window icons (decoration: windowRect.decoration), so icons in the pager don't update either when an application changes its icon at runtime. Checked with a minimal QML reproduction on Qt 6.11.2 (same setup: ComponentBehavior: Bound, required properties, createObject() from a Repeater delegate, then changing a name in the model): copied value (current code) 1 6 7 -> 1 6 7 Qt.binding(() => desktop.display) 1 6 7 -> 1 6 8 passing model (pre-6.6 code) 1 6 7 -> 1 6 8 Suggested fix, which keeps the typed required properties from the linting change: desktopLabelComponent.createObject(desktop, { index, display: Qt.binding(() => desktop.display), desktopFrame }); windowIconComponent.createObject(windowRect, { decoration: Qt.binding(() => windowRect.decoration) }); -- You are receiving this mail because: You are watching all bug changes.
