Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • tools
  • bridge
  • tests
  • test_perf_tray_midi.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    midiviz: the window resizes, the type follows it, and the theme is two clicks away · 3633fa0f
    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.
    PLN (Algolia) authored Sep 22, 2026
    3633fa0f
test_perf_tray_midi.py 3.2 KB
EditWeb IDE
×

Replace test_perf_tray_midi.py

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.