fix: keyboard layout applet doesn't show actual layout

BUG: 425343
master
Andrey Butirsky 2020-08-20 16:09:43 +00:00 committed by Vlad Zahorodnii
parent 925bb4eea3
commit cba895e723
2 changed files with 6 additions and 2 deletions

View File

@ -44,6 +44,7 @@ public:
void checkLayoutChange();
void resetLayout();
void updateNotifier();
void keyEvent(KeyEvent *event) override;
@ -61,7 +62,6 @@ private:
void switchToNextLayout();
void switchToPreviousLayout();
void switchToLayout(xkb_layout_index_t index);
void updateNotifier();
void reinitNotifierMenu();
void loadShortcuts();
Xkb *m_xkb;

View File

@ -34,7 +34,11 @@ Policy::~Policy() = default;
void Policy::setLayout(quint32 layout)
{
const quint32 previousLayout = m_xkb->currentLayout();
m_xkb->switchToLayout(layout);
if (previousLayout != m_xkb->currentLayout()) {
m_layout->updateNotifier();
}
}
quint32 Policy::layout() const
@ -92,7 +96,7 @@ GlobalPolicy::GlobalPolicy(Xkb *xkb, KeyboardLayout *_layout, const KConfigGroup
[this, xkb] (const QString &name) {
Q_UNUSED(name)
if (xkb->numberOfLayouts() > 1) {
xkb->switchToLayout(m_config.readEntry(defaultLayoutEntryKey(), 0));
setLayout(m_config.readEntry(defaultLayoutEntryKey(), 0));
}
}
);