Skip to content

v1.1.0-dev.91 — Dialogs that open the right size, and a Settings tab worth reading

Pre-release
Pre-release

Choose a tag to compare

@defessler defessler released this 28 Aug 15:52

v1.1.0-dev.91 — Dialogs that open the right size, and a Settings tab worth reading

Pre-release off the dev branch. Builds on v1.1.0-dev.90.

Five rounds of feedback in one release. Three of the reports were about
things an earlier round of this same release had broken, and two were
symptoms reported a second time after being called fixed. Those are called
out below, because how they got through is more useful than the fixes.

Display Settings

The dialog scrolled with visible blank space under the options. The cause
was 58px of deliberately reserved empty height: the by-hand resolution
inputs kept their box while hidden, and the note under them held a
three-line floor. Both were there so the dialog would not resize when a
control appeared, and both were paid for on every open whether or not
anything appeared. They collapse now and the window re-fits instead.

Measured on one desk: the dialog went from 734px to 667px tall, and the
room it had left under its height ceiling went from 4px to 71px. That
headroom is what decides whether it scrolls on a smaller app window.

Monitors nudge 10px per arrow key now instead of 100px, and the step is
yours to set in Settings → Auto-activation. Hold Ctrl for a tenth of it.
100px was a coarse place to leave a monitor and it could not be made finer.

With several monitors selected, every option now shows the value they
share, or says Multiple when they differ. Orientation and Refresh rate
had no readout at all before. Orientation was also lying: with more than
one display picked it claimed Landscape for a group that might be entirely
portrait.

Rotating several displays at once was impossible, and said nothing about
it. Picking Portrait came back landscape for every display, so the draft
matched their current state and the control snapped back on the next
redraw.

The heading row and the action buttons have air around them, and the
"Display-only preset" checkbox has a shorter label with a tooltip that
explains what the preset actually does.

Settings

The companion software tab was rebuilt. Each row now offers Install,
Update, Uninstall and Learn More, and nothing else. The Microsoft Store
button is gone, because one catalog entry in five had a store listing and a
button that appears on a single card is worse than no button.

Update no longer appears at all on something you do not have, and it is
disabled when the app is already current. That second half needed a
different fix than the obvious one: the button was not lying about being up
to date, WLM had simply never asked. Opening the tab asks winget now, so
the button reflects something real. Where there is an update, the pill
names the version you would get.

Rows sort by what there is to do about them: updates first, then what you
have, then what you do not. PowerShell 7's missing Uninstall button now
explains itself, which it should have from the start. It is found by
looking for pwsh.exe on your PATH rather than in the uninstall registry,
so there is no uninstaller for WLM to run.

The tab no longer locks the window up when it opens. Detection fires
three processes back to back, and on Windows each launch happens on the
calling thread. The app window is frameless, so that thread is the one
drawing it. Measured on one machine, same scan, one run each: 721ms with
a 342ms freeze inline, against a 17ms stall
once the work moved to a
helper process.

Companion apps can update themselves in the background, per app, on a
cadence you set in Settings → Updates. It is honest about what it cannot
do: Windows will not let an unelevated app update a system-wide package,
and most of this catalog is system-wide. Those come back saying they need
administrator rights rather than failing quietly or retrying forever.

Settings is a fixed-size panel inside the main window now rather than a
window of its own, so it is the same size on every machine and the copy no
longer wraps short of the borders around it.

Update buttons

Auditing "make sure the update buttons work" turned up nine defects. Two
were invisible from the outside and worth naming:

The Install button in Settings did nothing at all on the normal path.
Settings opened in its own window, nothing in that window knew which update
was pending, so the button closed Settings and drew nothing.

Every update message went to the app window only. The update dialog opens
in its own window, so the one you were watching sat at "Downloading 0%" for
the entire download, and a failed install left both buttons disabled with
no error text, permanently.

Also: Microsoft.Power is fifteen characters and matches both
Microsoft.PowerToys and Microsoft.PowerShell, so one truncated winget row
put an update on the wrong app.

The app

Dialogs appear in alt-tab and the taskbar. They are owned windows,
which Windows leaves out of both unless asked, and there was no way back to
one you had tabbed away from. They stay modal.

Dialogs open at the size they need instead of appearing and then
resizing a moment later. They are measured while still hidden and shown
once the size stops moving.

The app's own alt-tab preview is legible while a dialog is open. It was
blurred by a real blur on the app's pixels, and Windows composites those
same pixels into the thumbnail.

Dropdowns near the bottom of a dialog are no longer cut off by whatever is
scrolling above them, and they flip above the button when there is no room
below.

The focused-pane outline no longer sits on top of dialogs. It was raised
above the window frame at some point, which put it above everything else
too.

In the visual editor, hold Shift to snap while dragging. Snapping used
to be on by default with Alt to suppress it, and the radius worked out to
between two and four pixels on screen, so it was real code no pointer could
reach.

Two things reported twice

The scrollbar and the Update button were both reported again after being
called fixed. In both cases the check I had written could not have failed:
one measured whether the window could stretch rather than whether the
content was the right height, and the other read back the exact property it
had just written.

Both now have checks that reproduce the report before the fix and go quiet
after it. The dialog one measures reserved empty space, so it goes red even
where the window has room to hide it. The focused-outline one asserts the
stacking order rather than the colour, and asserts the outline is still
there when nothing covers it, so removing it cannot pass either.

Install

Auto-updates from dev.53 and later. Otherwise unzip and run.