Commit 80da18a1 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii
Browse files

[decorations] Emit DecorationSettings::fontChanged signal

No one emits DecorationSettings::fontChanged signal, so if you change
the window title font, then titlebars might look differently after reboot.

Currently, there are two places where we can emit that signal:
- in KDecoration library itself;
- and in KWin.

Because we would need to listen for a Plasma specific D-Bus signal, the
latter option is preferable.

Surprisingly, KWin's implementation of DecorationSettingsPrivate already
reacts to refreshFonts D-Bus signal (even though indirectly), so all
what we have to do is get the current window title font in
SettingsImpl::readSettings, and if it's different from the previous one,
emit DecorationSettings::fontChanged signal.

BUG: 400980
FIXED-IN: 5.15.0

Test Plan:
* Increased the size of the window title font, titlebars got bigger;
* Decreased the font size, titlebars got smaller.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision:
parent 84175043
......@@ -30,6 +30,8 @@ along with this program. If not, see <>.
#include <KConfigGroup>
#include <QFontDatabase>
namespace KWin
namespace Decoration
......@@ -183,6 +185,11 @@ void SettingsImpl::readSettings()
m_borderSize = size;
emit decorationSettings()->borderSizeChanged(m_borderSize);
const QFont font = QFontDatabase::systemFont(QFontDatabase::TitleFont);
if (font != m_font) {
m_font = font;
emit decorationSettings()->fontChanged(m_font);
emit decorationSettings()->reconfigured();
......@@ -49,6 +49,9 @@ public:
QVector< KDecoration2::DecorationButtonType > decorationButtonsRight() const override {
return m_rightButtons;
QFont font() const override {
return m_font;
void readSettings();
......@@ -59,6 +62,7 @@ private:
QVector< KDecoration2::DecorationButtonType > m_rightButtons;
KDecoration2::BorderSize m_borderSize;
bool m_closeDoubleClickMenu = false;
QFont m_font;
} // Decoration
} // KWin
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment