midiviz: the window resizes, the type follows it, and the theme is two clicks away
Three complaints from the rehearsal, one root cause each. "unusable in the sun in light mode" — themes are now top-level rows in the right-click menu with painted swatches and a ● / ○ marking the live one, plus a `MIDI ▸` submenu in the tray carrying the same three. Sun is listed first, because the moment you need it is the moment you cannot read the menu to find it. The swatches paint from the Theme ramps rather than the live LUT, so the menu shows what you would get, not what you have. "only drag -> grab atm" — 7px edges and 20px corners hand off to startSystemResize, which is what a tiling WM wants; a manual setGeometry path covers compositors that refuse it, keeping the opposite edge pinned so the window grows where you pull. minimumSize 240x150, corner ticks brighten on hover, and leaveEvent puts them back (without it they stay lit forever). "have it squeeze and expand properly as we make it taller or wider" — the old `_apply_scale` resized the window, so scaling and being resized fought each other. Now `_fit` = min(w/ref, h/ref) clamped to [0.35, 2.4], multiplied by the density knob, and `resizeEvent` re-measures rather than rescaling: idempotent, keyed on the pixel sizes it actually produces, and no resize() inside a resize handler. The reference is the birth size read BACK off the widget, so fit == 1.0 at birth and the look at 1.0x is byte-for-byte what it was. Key `0` resets. FIT_MIN went 0.55 -> 0.35 because 0.55 crushed the layout at 2.4x on a 240x150 tile and printed rows on top of each other — found by screenshotting six window shapes, not by reasoning about it. Tray theme switching is stop -> forget -> launch, and the forget is load-bearing: two relaunches inside SPAWN_GRACE would otherwise close the lens and then refuse to reopen it. It returns early if the stop is not confirmed, so a wedged monitor is never followed by a second one. Variants live in BY_KEY only, never in LAUNCHERS or snapshot(), so they cannot be converged into existence behind your back. Verified on screen (grabs, scaling, colours) before this landed. 75 tests over the three modules; suites 510 passed, 2 failed, both pre-existing. `--theme` is still one-shot, so a converge brings dark back — inherited, not fixed here.
Showing
tools/bridge/tests/test_perf_tray_midi.py
0 → 100644
Please
register
or
sign in
to comment