From 6a843087973eeb42b4e1955dbf936bd64ee24443 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot <groot@kde.org> Date: Tue, 18 Feb 2025 15:49:26 +0100 Subject: [PATCH] [keyboard] Preserve original settings for cancel() --- src/modules/keyboard/Config.cpp | 15 +++++++++++++++ src/modules/keyboard/Config.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 66b0c36e81..47c81a347b 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -571,11 +571,26 @@ Config::detectCurrentKeyboardLayout() break; } } + // The models have updated the m_current settings, copy them + m_original = m_current; } void Config::cancel() { + const auto extra = getAdditionalLayoutInfo( m_original.selectedLayout ); + if ( m_configureXkb ) + { + applyXkb( m_original, m_additionalLayoutInfo ); + } + if ( m_configureLocale1 ) + { + applyLocale1( m_original, m_additionalLayoutInfo ); + } + if ( m_configureKWin ) + { + applyKWin( m_original, m_additionalLayoutInfo ); + } } QString diff --git a/src/modules/keyboard/Config.h b/src/modules/keyboard/Config.h index dd7e5adb92..d48c734bea 100644 --- a/src/modules/keyboard/Config.h +++ b/src/modules/keyboard/Config.h @@ -107,6 +107,7 @@ private: KeyboardGroupsSwitchersModel* m_KeyboardGroupSwitcherModel; BasicLayoutInfo m_current; + BasicLayoutInfo m_original; // Layout (and corresponding info) added if current one doesn't support ASCII (e.g. Russian or Japanese) AdditionalLayoutInfo m_additionalLayoutInfo; -- GitLab