Skip to content

SnapClick v1.2.4

Choose a tag to compare

@Tyeerth Tyeerth released this 18 Jul 15:29
· 7 commits to main since this release

v1.2.4 微更新

多屏截图与窗口识别全面重构

窗口识别

  • 改用 CGWindowListCopyWindowInfo(.optionOnScreenOnly) 拿真实 Z 序窗口列表,再映射到 SCWindow;自动过滤 dock / WindowManager / controlcenter / systemuiserver 等系统 UI
  • 按窗口层 / 在屏状态 / alpha / 尺寸 / 屏幕相交做属性过滤
  • 排除 SnapClick 自身的覆盖层窗口,避免被识别为可截目标

单窗口精确截图

  • 新增 captureSingleWindow():macOS 14+ 走 SCScreenshotManager 拿指定窗口原生像素,降级路径用 CGWindowListCreateImage 在后台队列执行,避免主线程阻塞
  • 就地标注模式下用窗口单独截图替换裁剪底图,不再把上层其它程序误截进来

屏幕捕获

  • macOS 14+ 优先 SCScreenshotManager(异步、非阻塞、保留屏幕色彩空间)
  • 失败回退到 CGDisplayCreateImage(后台 Task.detached 避免阻塞主线程)
  • 修复单屏/多屏混合 Retina 错位

窗口选区坐标转换

  • 新增 cgCoordFlipHeight 取所有屏幕 frame.maxY 最大值
  • view → window → AppKit 全局 → CG 全局坐标完整链路修正
  • 多屏幕下悬停 / 点击窗口命中准确

色彩空间对齐

  • CaptureOverlayWindow 显式设置 targetScreen.colorSpace,避免 NSImage.draw 在 sRGB 默认窗口里出现 hover / 选中后的色温偏移

校验

  • MARKETING_VERSION 1.2.3 → 1.2.4
  • CFBundleVersion 4 → 5