https://bugs.kde.org/show_bug.cgi?id=528342
--- Comment #6 from Henrique Sant'Anna <[email protected]> --- (In reply to Waqar Ahmed from comment #5) > Hmm, can't reproduce I am afraid. I found the exact trigger for the bug: it is tied to whether an editor tab has ever had its zoom level modified (Ctrl++ / Ctrl+- or Ctrl+MouseWheel). Exact Steps to Reproduce: 1) Open Kate with two tabs (Tab A and Tab B). 2) Leave Tab A untouched (never adjust its zoom level). 3) In Tab B, zoom in (Ctrl++) or zoom out (Ctrl+-), and then reset the zoom back to the default 100% (Ctrl+0). 4) Go to Settings → Configure Kate... → Appearance → General tab → Editor Font and click Choose.... 5) Select a different font family and/or font size, confirm in the font dialog, and click Apply / OK. Observed Behavior - Tab A (which never had its zoom modified) updates immediately to the new font family and size. - Tab B (which had its zoom modified at some point, even after resetting to 100% with Ctrl+0) completely ignores the new global font configuration (both font family and font size) and remains stuck on the previously cached font. Technical Note It seems that adjusting the zoom level on a view creates a local per-view font override in KTextEditor that persists even when the zoom is reset to default (Ctrl+0), preventing subsequent global font configuration changes from propagating to that specific view. Root Cause Analysis in KTextEditor Source Code: Looking at how KateRenderer (src/render/katerenderer.cpp) and KateRendererConfig (src/utils/kateconfig.cpp) interact, this behavior is directly caused by how zoom modifies the per-view config: By default, a newly created view does not have the Font entry explicitly set in its local KateRendererConfig, so config()->baseFont() falls back to KateRendererConfig::global()->baseFont(). When the user changes the global font in Settings, untouched views immediately pick up the new global QFont. However, KateRenderer::increaseFontSizes() and KateRenderer::decreaseFontSizes() do not store a relative zoom factor; instead, they copy QFont and call config()->setFont(f) on the view's local KateRendererConfig. This marks the Font config entry as locally overridden in KateConfig for that specific view, breaking the fallback to KateRendererConfig::global()->baseFont(). Furthermore, pressing Ctrl+0 (KateRenderer::resetFontSizes(), added in commit 968af10fd4b6) simply calls config()->setFont(KateRendererConfig::global()->baseFont()) on the local view config instead of clearing/unsetting the local override. As a result, the local QFont override remains permanently active on that view, causing it to ignore any subsequent updates to KateRendererConfig::global()->baseFont() (both font family and size). -- You are receiving this mail because: You are watching all bug changes.
