Focus weather city input on return

This commit is contained in:
David Heinemeier Hansson
2026-07-18 21:19:14 -07:00
parent be1aab859d
commit 6742adce3d
3 changed files with 11 additions and 1 deletions
+6 -1
View File
@@ -37,6 +37,7 @@ Item {
signal moveRequested(int dx, int dy)
signal activateRequested()
signal returnRequested()
signal closeRequested()
signal deleteRequested()
signal tabRequested(int direction)
@@ -67,7 +68,11 @@ Item {
if (event.key === Qt.Key_Left || event.text === "h") {
moveRequested(-1, 0); event.accepted = true; return
}
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter || event.key === Qt.Key_Space) {
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
returnRequested()
activateRequested(); event.accepted = true; return
}
if (event.key === Qt.Key_Space) {
activateRequested(); event.accepted = true; return
}
if (event.text === "x" || event.text === "X") {
+1
View File
@@ -450,6 +450,7 @@ Panel {
id: keyCatcher
anchors.fill: parent
blocked: root.editingLocation
onReturnRequested: root.startEditingLocation()
onCloseRequested: root.close()
onTabRequested: function(direction) { root.switchPanel(direction) }
+4
View File
@@ -118,6 +118,10 @@ assert(
fs.readFileSync(root + '/shell/plugins/panels/weather/Panel.qml', 'utf8').includes('text: root.label || "—"'),
'weather hero and bar use the same resolved icon'
)
assert(
fs.readFileSync(root + '/shell/plugins/panels/weather/Panel.qml', 'utf8').includes('onReturnRequested: root.startEditingLocation()'),
'weather focuses city input when Return is pressed'
)
assert(!weather.weatherResponseCompletesSave(true, 'wttr'), 'weather keeps the spinner through a non-authoritative pinned-location response')
assert(weather.weatherResponseCompletesSave(true, 'open-meteo'), 'weather completes a pinned-location save with Open-Meteo data')
assert(weather.weatherResponseCompletesSave(false, 'wttr'), 'weather completes a name-only location save with wttr data')