mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-27 21:47:50 -04:00
* feat(screenshot): support 4-corner resizing while holding Ctrl - Hit-test selection corners when Ctrl is held to allow resizing. - Set opposite corner as fixed anchor and update dynamic cursor shape (NwseResize/NeswResize). - Draw corner handle indicators when Ctrl is held or during active resize. - Add 'Ctrl resize/move' to overlay HUD and provide complete glyph coverage for HUD labels. - Add comprehensive unit tests covering hit testing, inverted dragging, incremental handle damage, and glyph coverage. * fix(screenshot): invalidate background cache on handle and shift modifier changes - Track backgroundHandles and backgroundShift in RenderSlot.cacheValid. - Rebuild background slot and HUD when handle or shift modifier states change with an existing selection, preventing incremental re-dimming from punching holes in the HUD. - Fix trailing newline in region_resize_test.go for golangci-lint. * fix(screenshot): gate redraw and handle dimming on render modifier changes - Only trigger redrawSurface when Shift or Ctrl modifier states actually change, preventing redundant redraws when tapping Alt, Super, or Locks. - Only re-dim and damage corner handle bounding boxes in overlayDelta and overlayDamage when handles move or their visibility changes, preventing unnecessary re-dimming of stationary handles over the HUD. - Add TestOverlayDeltaIdenticalOverlayNoHandleDimming test. * fix(screenshot): measure hud text advance accurately to prevent pill overflow - Use (1+len(item.desc))*(charW+1) when calculating totalW in drawHUD, matching the full 9px advance used when drawing space and description. - Add TestHUDDimensionsContainText to verify HUD pill dimensions enclose all text items with correct padding across all variant combinations. * fix(screenshot): compare handle rect sets in overlay delta and damage - Use slices.Equal to compare prev and cur handleRects in overlayDelta and overlayDamage instead of interior equality. - Properly re-dim and damage handles when selection corners cross monitor boundaries where clamped interior is unchanged but top/bottom/left/right flags change. - Add TestOverlayDeltaHandlesClampedMonitorEdge test. * test(screenshot): verify drawHUD output buffer pixels stay within pill bounds - Extract hudDimensions helper on RegionSelector used by drawHUD. - Update TestHUDDimensionsContainText to drive drawHUD directly into a zeroed buffer and assert no lit pixel falls outside the computed HUD pill boundary across all configuration variants.