diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f5f6e4..d550277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ one per merged pull request. - **feat: after the GNOME theme is applied in a GNOME session, the app's done screen has "Restart GNOME" (GNOME Shell on Wayland can't restart in place, and the dock, extensions and Settings panel only show after a new login): with GDM autologin (the SteamOS conversion) Steamify's relogin helper logs the user straight back into the session they were in (without changing the session gaming mode's boot goes back to), else it is a plain logout (`gnome-session-quit`)** - **fix: the app on a desktop (a window, however large, also fullscreen) keeps the desktop's own scale instead of blowing its 1280x720 layout up to the screen's height (twice as big on a 1440p or ultrawide monitor): the layout fills the window at the scale of GNOME or KDE, and only a window smaller than 1280x720 shrinks it. The TV mode (`--fullscreen`, gamescope) still scales to the screen** -- **fix: in the app a switch flips with one click (the first click used to only select the row, the second flipped it); the BIOS update and the boot choice still need the row selected first** +- **fix: in the app a click on a row only selects it (a second click on the selected row used to flip it, so a click on a switch needed two); a click on the switch itself, or on the BIOS update button, acts at once and selects the row too** ## 2.12.0 - 2026-10-13 diff --git a/ui/qml/MenuRow.qml b/ui/qml/MenuRow.qml index 20b4b1c..4c9e282 100644 --- a/ui/qml/MenuRow.qml +++ b/ui/qml/MenuRow.qml @@ -31,14 +31,9 @@ Item { color: row.selected ? Theme.cardSel : Theme.card border.width: row.selected ? 2 : 0; border.color: Theme.accent MouseArea { anchors.fill: parent; cursorShape: Qt.PointingHandCursor - onClicked: { - Input.type = "keyboard"; - var wasSelected = row.selected; - app.sel = row.rowIndex; - // A switch flips on the first click. The others (the BIOS update, the boot choice) need the row selected - // first: a stray click mustn't start a flash. - if (wasSelected || row.it.kind === "toggle") app.act("accept"); - } } + // A click on the row only selects it; the switch, the Gaming/Desktop buttons and the BIOS button act on their own + // click (below), selecting the row too. + onClicked: { Input.type = "keyboard"; app.sel = row.rowIndex; } } Text { visible: !!row.it.parent; x: 20; anchors.verticalCenter: parent.verticalCenter; text: "└"; color: "#56627a"; font.pixelSize: 18 } Column { @@ -74,14 +69,18 @@ Item { Rectangle { id: sw; visible: row.it.kind === "toggle"; anchors.right: parent.right; anchors.verticalCenter: parent.verticalCenter width: 46; height: 26; radius: 13; color: row.on ? Theme.accent : "#343f50" Behavior on color { ColorAnimation { duration: 120 } } - Rectangle { width: 20; height: 20; radius: 10; color: "#f4f7fb"; y: 3; x: row.on ? 23 : 3; Behavior on x { NumberAnimation { duration: 120 } } } } + Rectangle { width: 20; height: 20; radius: 10; color: "#f4f7fb"; y: 3; x: row.on ? 23 : 3; Behavior on x { NumberAnimation { duration: 120 } } } + MouseArea { anchors.fill: parent; anchors.margins: -6; cursorShape: Qt.PointingHandCursor + onClicked: { Input.type = "keyboard"; app.sel = row.rowIndex; app.act("accept"); } } } Text { visible: row.it.kind === "toggle"; anchors.right: sw.left; anchors.rightMargin: 12; anchors.verticalCenter: parent.verticalCenter text: row.it.on ? "now on" : "now off"; color: row.it.on ? Theme.good : Theme.faint; font.family: Theme.mono; font.pixelSize: 12 } // action (Update BIOS) Rectangle { visible: row.it.kind === "action"; anchors.right: parent.right; anchors.verticalCenter: parent.verticalCenter width: at.implicitWidth + 24; height: 30; radius: 8; color: Theme.warnBg Text { id: at; anchors.centerIn: parent; color: Theme.warn; font.family: Theme.body; font.pixelSize: 13; font.weight: Font.DemiBold - text: app.biosChecking ? "Checking…" : app.bios && app.bios.selectable ? "Update…" : (app.bios && app.bios.newest ? "Up to date" : "Unavailable") } } + text: app.biosChecking ? "Checking…" : app.bios && app.bios.selectable ? "Update…" : (app.bios && app.bios.newest ? "Up to date" : "Unavailable") } + MouseArea { anchors.fill: parent; cursorShape: Qt.PointingHandCursor + onClicked: { Input.type = "keyboard"; app.sel = row.rowIndex; app.act("accept"); } } } } } }