diff --git a/plasma/applets/keyboard/keyboard.cpp b/plasma/applets/keyboard/keyboard.cpp index e4d9f301..a0531ec6 100644 --- a/plasma/applets/keyboard/keyboard.cpp +++ b/plasma/applets/keyboard/keyboard.cpp @@ -153,6 +153,29 @@ void KeyboardApplet::wheelEvent(QGraphicsSceneWheelEvent *event) } } +void KeyboardApplet::constraintsEvent(Plasma::Constraints constraints) +{ + if (constraints & Plasma::FormFactorConstraint) { + int iconsize = 0; + switch (formFactor()) { + case Plasma::FormFactor::Planar: + case Plasma::FormFactor::MediaCenter: + case Plasma::FormFactor::Application: { + // desktop-like + iconsize = KIconLoader::global()->currentSize(KIconLoader::Desktop); + break; + } + case Plasma::FormFactor::Horizontal: + case Plasma::FormFactor::Vertical: { + // panel + iconsize = KIconLoader::global()->currentSize(KIconLoader::Panel); + break; + } + } + setMinimumSize(iconsize, iconsize); + } +} + void KeyboardApplet::slotLayoutChanged() { const QList layouts = m_keyboardlayout->layouts(); diff --git a/plasma/applets/keyboard/keyboard.h b/plasma/applets/keyboard/keyboard.h index c7156c10..187d9a95 100644 --- a/plasma/applets/keyboard/keyboard.h +++ b/plasma/applets/keyboard/keyboard.h @@ -42,6 +42,10 @@ public: void mousePressEvent(QGraphicsSceneMouseEvent *event) final; void wheelEvent(QGraphicsSceneWheelEvent *event) final; +protected: + // Plasma::Applet reimplementation + void constraintsEvent(Plasma::Constraints constraints) final; + private Q_SLOTS: void slotLayoutChanged(); void slotNextLayout();