From 5d991aff3e379beab1005dda98d0d99364429aae Mon Sep 17 00:00:00 2001 From: EliverLara Date: Thu, 9 Sep 2021 15:22:15 -0500 Subject: [PATCH] KDE: Fix KeyboardLayoutButton in lockscreen --- .../components/KeyboardLayoutButton.qml | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kde/plasma/look-and-feel/Sweet-Mars/contents/components/KeyboardLayoutButton.qml b/kde/plasma/look-and-feel/Sweet-Mars/contents/components/KeyboardLayoutButton.qml index 32edb52..2af2325 100644 --- a/kde/plasma/look-and-feel/Sweet-Mars/contents/components/KeyboardLayoutButton.qml +++ b/kde/plasma/look-and-feel/Sweet-Mars/contents/components/KeyboardLayoutButton.qml @@ -32,21 +32,31 @@ PlasmaComponents.ToolButton { iconName: "input-keyboard" implicitWidth: minimumWidth - text: layout.currentLayoutDisplayName + text: layout.layoutName() font.pointSize: Math.max(fontSize,theme.defaultFont.pointSize) Accessible.name: i18ndc("plasma_lookandfeel_org.kde.lookandfeel", "Button to change keyboard layout", "Switch layout") - visible: layout.layouts.length > 1 + visible: layout.shouldBeVisible() onClicked: layout.nextLayout() KeyboardLayout { id: layout - function nextLayout() { - var layouts = layout.layouts; - var index = (layouts.indexOf(layout.currentLayout)+1) % layouts.length; - layout.currentLayout = layouts[index]; + function nextLayout() { + layout.layout = (layout.layout + 1) % layout.layoutsList.length; + } + + function shouldBeVisible() { + return layout.layoutsList.length > 1; + } + + function layoutName() { + return (layout.isInitialized() && layout.layoutsList[layout.layout].displayName) || ''; + } + + function isInitialized() { + return layout.layoutsList.length > 0; } } }