https://bugs.kde.org/show_bug.cgi?id=508239
Igor Kushnir <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Latest Commit|https://invent.kde.org/kdev |https://invent.kde.org/kdev |elop/kdevelop/-/commit/84f1 |elop/kdevelop/-/commit/1d3c |b96492c48d742ac57c27871dfc4 |f67f8a0ae9187a813d06f5e02b9 |4de530e88 |8c355a784 --- Comment #5 from Igor Kushnir <[email protected]> --- Git commit 1d3cf67f8a0ae9187a813d06f5e02b98c355a784 by Igor Kushnir. Committed on 21/08/2025 at 08:46. Pushed by igorkushnir into branch 'release/25.08'. Pass a non-read-only config group to ZoomController ZoomControllerPrivate() copies and stores the config group passed to ZoomController(). If the original group is read-only, the stored group is read-only as well. When ZoomControllerPrivate::writeConfig() calls KConfigGroup::writeEntry() on the read-only stored group, the following assertion failure occurs in case KConfig has been compiled with assertions enabled: ASSERT failure in KConfigGroup::writeEntry: "writing to a read-only group", file kconfig/src/core/kconfiggroup.cpp, line 888 When KConfig assertions are disabled, there is no crash and documentation zoom factors are preserved between KDevelop launches. However, the KConfigGroup::sync() call in ZoomControllerPrivate::writeConfig() returns false, and consequently the updated zoom factors are written to kdeveloprc only when the KSharedConfig object is destroyed on KDevelop exit or when the config is synced for some other reason (such as applying changes to KDevelop settings). The stored config group has been read-only and the sync() call has been fruitless ever since 253d9c54a688403acfeaba9e30eb79fdd0c7bb44 introduced the documentation zoom feature. Yet no one has complained about losing documentation zoom factors after a KDevelop crash, probably because they can be easily adjusted anew. Wheel events are not compressed, so sync() is called repeatedly while the user scales a documentation view via the mouse wheel. Remove the inessential sync() call to optimize (instead of making it work as a side effect of the assertion failure fix). FIXED-IN: 6.3.250801 (cherry picked from commit 84f1b96492c48d742ac57c27871dfc44de530e88) M +2 -1 kdevplatform/documentation/standarddocumentationview.cpp M +0 -1 kdevplatform/util/zoomcontroller.cpp M +1 -1 kdevplatform/util/zoomcontroller.h https://invent.kde.org/kdevelop/kdevelop/-/commit/1d3cf67f8a0ae9187a813d06f5e02b98c355a784 -- You are receiving this mail because: You are watching all bug changes.
