Bug 510758 - System Settings becomes extremely laggy when opening “Notifications” panel (LANGUAGE=zh_CN)
Summary: System Settings becomes extremely laggy when opening “Notifications” panel (L...
Status: RESOLVED FIXED
Alias: None
Product: frameworks-kirigami
Classification: Frameworks and Libraries
Component: general (other bugs)
Version First Reported In: 6.19.0
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: Not decided
Assignee: kdelibs bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-10-18 17:33 UTC by silvigarabis
Modified: 2025-10-23 15:44 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.20
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description silvigarabis 2025-10-18 17:33:08 UTC
SUMMARY
System Settings becomes extremely laggy when opening “Notifications” panel (LANGUAGE=zh_CN)

STEPS TO REPRODUCE
1. Set system locale to a non-English language: e.g., `export LANGUAGE=zh_CN`
2. Open **System Settings** (`systemsettings`)
3. Navigate to the **Notifications**(aka "通知") page
4. Observe that the window becomes very laggy and almost unresponsive until switching to another panel
5. CPU usage of `systemsettings` spikes to **100% on one core**
6. Open other settings panels – they work normally

OBSERVED RESULT
* Notifications panel is extremely slow/unresponsive
* `systemsettings` CPU usage spikes to one full core
* Terminal output shows repeated messages:

```
qrc:/qt/qml/org/kde/kirigami/layouts/FormLayout.qml:132:5: QML GridLayout: possible QQuickItem::polish() loop
qrc:/qt/qml/org/kde/kirigami/layouts/FormLayout.qml:132:5: QML GridLayout: GridLayout called polish() inside updatePolish() of GridLayout
```

* Messages repeat every few seconds while the panel is open


EXPECTED RESULT
* Notifications panel should open normally without lag or high CPU usage
* No repetitive QML polish loop messages


ADDITIONAL INFORMATION

* Issue is **language-specific**: occurs in multiple non-English locales, including `zh_CN`, `ja_JP`, `ar_SA`, and `ko_KR`. English locales (e.g., `en_US`, `en_GB`) do not trigger the issue.
* Issue did **not** exist in Plasma 6.4.3 + Frameworks 6.16.0
* I created a Btrfs snapshot before upgrading. After restoring 6.4.3 snapshot, the issue disappears
* Seems to be a regression triggered between Frameworks 6.16 → 6.19, specifically affecting non-English locales
* This issue was also discussed on the KDE forum: [System Settings becomes extremely laggy when opening “Notifications” panel](https://discuss.kde.org/t/system-settings-becomes-extremely-laggy-when-opening-notifications-panel/40696)

---

SOFTWARE/OS VERSIONS

Operating System: Fedora Linux 42
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.19.0
Qt Version: 6.9.2
Kernel Version: 6.13.12-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i5-10210U CPU @ 1.60GHz
Memory: 16 GiB of RAM (15.4 GiB usable)
Graphics Processor 1: Intel® UHD Graphics
Graphics Processor 2: NVIDIA GeForce MX350

---

**Notes / Possible Causes:**

* The QML log messages suggest a **polish() loop in GridLayout** within Kirigami framework
* Developer `ngraham` suspects it is triggered by **KDE Frameworks** rather than Plasma itself
* Language-specific regression affecting non-English locales
Comment 1 David Redondo 2025-10-20 07:30:25 UTC
Confirmed with these steps
Comment 2 Bug Janitor Service 2025-10-20 10:08:37 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/486
Comment 3 Marco Martin 2025-10-20 11:06:16 UTC
Git commit ed82077889fce696f993a5376c27c13f177d5bb8 by Marco Martin.
Committed on 20/10/2025 at 11:03.
Pushed by mart into branch 'master'.

SpinBox: Make paddings integer to avoid potential polish loops

This is not about pixel alignment on fractipnal scaling, but
about a quirk adapting QStyle pixelmetrics, that are always
integer, with QML items which can potentially have fractional sizes

right padding depends from the size - styleitem.editRect.right)
which will change the implicit width, which might change the width,
which will change the right padding.

right padding is always fixed if sizes are integer as
styleitem.x + styleitem.width - styleitem.editRect.right is always the
same result, but only if styleitem.width is integer, because
styleitem.editRect will always be integer

This is very visible on the notifications kcm with the chinese language

Make sure that leftPadding and rightPadding are always rounded so
this won't happen again

M  +3    -2    org.kde.desktop/SpinBox.qml

https://invent.kde.org/frameworks/qqc2-desktop-style/-/commit/ed82077889fce696f993a5376c27c13f177d5bb8
Comment 4 Nate Graham 2025-10-23 15:44:57 UTC
*** Bug 510966 has been marked as a duplicate of this bug. ***