Skip to content

Render overlay from fresh state and drop the ignore feature#15

Merged
peterp merged 2 commits intomainfrom
fresh-show
May 6, 2026
Merged

Render overlay from fresh state and drop the ignore feature#15
peterp merged 2 commits intomainfrom
fresh-show

Conversation

@peterp
Copy link
Copy Markdown
Owner

@peterp peterp commented May 6, 2026

Summary

  • Always render the overlay from a freshly-fetched SCShareableContent on cmd-cmd instead of painting the prewarm cache and animating a reconcile pass on top. The "stale tiles slide into place" flicker after every show is gone; prewarm still runs in the background to keep the framework call warm.
  • Drop the ignore / show-hidden feature (cmd+delete, cmd+y). The bundleID|||title key broke whenever a window's title changed, the feature was hidden behind chords with no settings UI, and the filtered tile list it produced was the main reason savedOrder drifted.
  • Persist drag and ⌘+arrow reorders through allTiles rather than the search-filtered tiles list. savedOrder now reflects every known window, so reordering during search no longer drops hidden tiles and newly-opened windows reliably append at the back.

The orphaned ignoredWindows.<display> UserDefaults key from the removed feature is left in place — no migration needed.

Test plan

  • ⌘⌘ shows the overlay with the correct tile set on the first paint; no jarring layout reflow.
  • Close a window externally, then ⌘⌘ — the closed window is not shown.
  • Open a new window — it appears at the back of the grid on the next show, and on the next reconcile if the overlay is already up.
  • Drag a tile to reorder, dismiss, reopen — order persists.
  • ⌘F to search, drag while filtered, dismiss, reopen — non-matching tiles keep their old positions; the dragged tile lands where you put it.
  • ⌘+delete and ⌘+Y are no-ops (no longer bound).

Three fixes that all sharpen what the overlay shows on cmd-cmd:

- Remove the ignore / show-hidden feature (cmd+delete, cmd+y). The
  bundle+title key was unreliable across tabs and doc renames, the
  feature was hidden behind chords with no UI affordance, and the
  filtered tile list it produced was the main reason savedOrder kept
  drifting.
- Persist drag and cmd+arrow reorders through allTiles instead of
  the search-filtered tiles list. savedOrder now reflects every
  known window, so newly-opened windows reliably append at the back.
- Always render from a fresh SCShareableContent fetch on show. The
  prewarm-then-reconcile path is gone — no more stale tiles sliding
  into their final positions after every cmd-cmd. Prewarm still runs
  in the background to keep the framework call warm.
@peterp peterp mentioned this pull request May 6, 2026
7 tasks
@peterp peterp merged commit 66b72ee into main May 6, 2026
1 check passed
@peterp peterp deleted the fresh-show branch May 6, 2026 14:54
@peterp peterp mentioned this pull request May 6, 2026
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant