diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-17 14:37:07 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-17 14:37:07 +0200 |
| commit | 27ef16187a672acb96e8d930e0ab4bf893ad8f6a (patch) | |
| tree | 9ce5a7b3c697bf267db0569101b22dca2283ffe9 /theme/Main.qml | |
| parent | 8ead58fb5baa8d781159cf443c0f7ffd68cb6775 (diff) | |
| download | sddm-theme-udt-27ef16187a672acb96e8d930e0ab4bf893ad8f6a.tar.gz sddm-theme-udt-27ef16187a672acb96e8d930e0ab4bf893ad8f6a.zip | |
fix: quote dateFormat and gate hidden credential field focus
Quote the comma-bearing dateFormat default; QSettings reads an
unquoted comma as a QStringList and SDDM's stringValue() then returns
the empty string, leaving the value inert. Note the caveat in the
README Panel section.
Set activeFocusOnTab per credential stage so Tab cannot reach the
offscreen, transparent field and silently append to the submitted
value. forceActiveFocus() ignores activeFocusOnTab, so focusStage()
still lands focus in each stage.
Apply the remaining review fixes: compare the PowerBar fallback as a
string, animate the back chevron width, give both opacity behaviours
an OutCubic easing, gate the clock timer on panel visibility, clamp
panelWidth to 1, and reword stale "card" prose to "panel".
Diffstat (limited to 'theme/Main.qml')
| -rw-r--r-- | theme/Main.qml | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/theme/Main.qml b/theme/Main.qml index a5acac9..0a7ce3d 100644 --- a/theme/Main.qml +++ b/theme/Main.qml @@ -3,8 +3,8 @@ // // UDT SDDM greeter. SDDM creates one window per screen, each sized to its own // screen and carrying a one-row ScreenModel, so this root item is exactly one -// screen. The wallpaper fills it; the login card draws only on the screen -// named by config uiScreen, else on the primary screen. Input wakes the card +// screen. The wallpaper fills it; the login panel draws only on the screen +// named by config uiScreen, else on the primary screen. Input wakes the panel // after it fades. import QtQuick @@ -27,7 +27,7 @@ Item { ? "" : "file://" + config.stringValue("background") - // The screen the card belongs on: config uiScreen if non-empty, else the + // The screen the panel belongs on: config uiScreen if non-empty, else the // primary screen. `primaryScreen` is a per-window context property SDDM // sets true only on the window showing the primary screen. readonly property string wantedScreen: config.stringValue("uiScreen") @@ -36,7 +36,7 @@ Item { ? primaryScreen : (thisScreenName === wantedScreen) - // The wallpaper fills this window's single screen. The frosted card + // The wallpaper fills this window's single screen. The frosted panel // samples this image. Image { id: wallpaperImage @@ -49,7 +49,7 @@ Item { asynchronous: true } - // Scrim so the card and text read on any wallpaper. + // Scrim so the panel and text read on any wallpaper. Rectangle { anchors.fill: parent color: root.baseColor @@ -65,11 +65,11 @@ Item { } } - // Idle: fade the card after fadeoutMs, restore on any input. + // Idle: fade the panel after fadeoutMs, restore on any input. property bool uiVisible: true - // While faded the card is disabled, which clears its focus; take focus on - // the root so the first key press wakes the card instead of vanishing. + // While faded the panel is disabled, which clears its focus; take focus on + // the root so the first key press wakes the panel instead of vanishing. onUiVisibleChanged: { if (!uiVisible) root.forceActiveFocus() @@ -107,7 +107,7 @@ Item { // key is missing or malformed. readonly property real panelWidth: { var v = parseFloat(config.stringValue("panelWidth")) - return v > 0 ? v : 0.30 + return v > 0 ? Math.min(v, 1) : 0.30 } Panel { |
