Commits

Commits on April 27, 2026

  1. Refresh overlay bounds on focus change before hide/unhide
    AX-driven window moves during stack cycles often don't emit SLS
    WINDOW_MOVE notifications, so the stored overlay frame can be stale
    when update_focus runs. Calling sync_overlay against the live
    SLSGetWindowBounds for both old and new focused windows before the
    hide/unhide pair keeps the active border on the right window during
    stack-next/prev navigation.
    mfwolffe committed
  2. Exclude overlays from screen capture via donut bounds path
    Replaces the overlay's bounds region with a CGPath containing an outer
    rect and an inner cutout. SLS evaluates the path with even-odd winding,
    so the interior is treated as outside the window: screenshots taken
    inside the bordered area capture the underlying app window instead of
    the overlay. Pairs with SharingState/ClientPerceivedType advisories for
    capture clients that honor them.
    mfwolffe committed
  3. Switch overlay click-through from SLSSetWindowTags to SLSSetWindowEventShape
    The kCGSIgnoreForEvents tag bit poisons the shared SLS connection's
    SLSNewWindow path during stack-cycle recreates, dropping border
    overlays on the inactive stack windows. An empty event shape achieves
    the same click-through without mutating tags.
    mfwolffe committed

Commits on April 7, 2026

  1. espadonne committed

Commits on April 6, 2026

  1. espadonne committed

Commits on March 30, 2026

Commits on March 23, 2026

  1. revert layer filters to layer!=0, use main_cid for cross-process queries
    - revert add_fresh/discover/list layer filters back to layer != 0
      (opening to 0-25 caused ers to border its own stale overlays)
    - keep get_front_window layer filter open for focus detection on
      floating windows at non-zero levels
    - use self.main_cid instead of overlay.cid for SLSGetWindowBounds
      in redraw() and reposition() to fix cross-process bounds queries
    espadonne committed
  2. accept non-zero window layers for focus detection and bordering
    layer != 0 filter was skipping floating windows set to level 8 by
    tarmac. now accepts layers 0-25 (normal through modal panel),
    skipping only negative layers and system UI. fixes:
    - focus detection finds floating windows as front window
    - add_fresh includes floating windows for border creation
    - list_windows shows floating windows in --list output
    espadonne committed

Commits on March 22, 2026

  1. espadonne committed