Let a tap on the phone's host list mean connect

Choosing a machine raised the connect bar over the bottom of the list: a
password box, CONNECT, EDIT, MOVE and DELETE. Five controls in the way of the
one thing a tap on a machine's name obviously means.

So the gestures split. A tap connects. A long press raises the bar, with all
five. The pencil in the phone's header — its only persistent chrome — edits
whichever host is chosen, which is the one of the five common enough to be worth
a control that is always in the same place.

The flag doing it is the desktop's own IsHostPaneOpen rather than a second one.
That head made exactly this move when a selection stopped opening its drawer, and
the question both are asking is "has somebody asked about this host" — answering
it twice is how two heads come to disagree about what a selection means.

One tap cannot finish: a host that authenticates with a typed password has
nowhere on a list to be given one. That tap raises the bar with the box in it and
says so, and a second tap with the box filled in connects. The branch is in the
view model rather than in the head, because "can this machine be reached without
asking for anything" is the same question the bar's own password box answers, and
a copy of it in a view would be a second reading of a binding chain that has one.

Two mechanics worth knowing. Avalonia raises Tapped on release whatever the press
lasted, so a long press would open the bar and then connect — one touch firing
both gestures — which is why HostsScreen tracks the hold and swallows the tap it
precedes. And Holding only fires once IsHoldingEnabled is set, so that and the
handler are attached together rather than one in markup and one in code.

ConnectToRecent now opens the pane rather than selecting the row. On the phone it
has to: a selection alone raises nothing now, so going back to a recent machine
would land on a screen with nothing to press.
This commit is contained in:
2026-08-05 08:43:33 +02:00
parent 69bc9e270b
commit 746711da9d
8 changed files with 412 additions and 26 deletions
+10 -1
View File
@@ -489,7 +489,16 @@ transfer starts, the download runs into the cache, and the finished bytes are co
chose. That order has one visible cost, and the screen says it rather than leaving it to be discovered: the
picker creates the file when you dismiss it, so a download that then fails leaves an empty one there. The
alternative is a picker that appears minutes later over whatever you moved on to — and often while the app
is in the background, where Android will not show one at all. Hosts and groups are made, corrected and taken
is in the background, where Android will not show one at all.
**On the phone's host list a tap connects.** It used to choose the machine and raise a bar over the bottom of
the list — a password box, CONNECT, EDIT, MOVE and DELETE — which put five controls in the way of the one
thing tapping a machine's name obviously means. So the gestures split: a tap connects, a **long press** raises
that bar, and the **pencil in the header** edits whichever host is chosen. The one tap that cannot finish is a
host that authenticates with a password you type, because there is nowhere on a list to type it — that tap
raises the bar with the box in it and says so, and tapping the row again once it is filled in connects.
Hosts and groups are made, corrected and taken
away here now, from a floating + on the Hosts screen and a menu on each group's heading, and both editors are
cards in the list's own row rather than dialogs, so the form never covers the thing it is about. Every
question a deletion asks is the desktop's, counted the same way and drawn in the place the buttons that