Skip to content

fix(mac): 修复灵动岛刘海对齐#44

Open
xingranya wants to merge 1 commit into
SPlayer-Dev:devfrom
xingranya:fix/mac-dynamic-island
Open

fix(mac): 修复灵动岛刘海对齐#44
xingranya wants to merge 1 commit into
SPlayer-Dev:devfrom
xingranya:fix/mac-dynamic-island

Conversation

@xingranya

Copy link
Copy Markdown

1. macOS 刘海屏灵动岛定位

  • 窗口尺寸修复 (electron/main/window/dynamicIsland.ts): 覆盖通用窗口默认 minWidth/minHeight,避免灵动岛被默认 800x600 最小尺寸撑大。
  • 刘海基准对齐 (electron/main/window/dynamicIsland.ts): 基于实测刘海尺寸按 display.scaleFactor 换算逻辑尺寸,并在 2x 屏下使用稳定的刘海基准宽高。
  • 顶部吸附修复 (electron/main/window/dynamicIsland.ts): snapped 模式改为基于 display.bounds 顶边居中吸附,不再使用 workArea.y,避免显示到菜单栏下方或恢复旧坐标。
  • 启动与拖拽纠偏 (electron/main/window/dynamicIsland.ts): 居中吸附时清空旧 x/y,宽高变化和拖回顶部释放后都会重新对齐真实刘海位置。

2. 灵动岛外观与歌词适配

  • 刘海融合轮廓 (windows/dynamic-island/App.vue): snapped 模式改为透明窗口中的自定义 SVG 轮廓,黑色区域从屏幕顶边开始绘制,与真机刘海视觉融合。
  • 圆角与边缘优化 (windows/dynamic-island/App.vue): 顶部两侧增加小圆弧对接处理,底部圆角与专辑图圆角保持呼应,减少突兀直角和错位感。
  • 长歌词自适应 (windows/dynamic-island/App.vue): 放宽最大展开宽度,并在渲染端增加文本缩放与省略策略,避免长歌词把窗口撑成异常长条或被硬裁断。
  • floating 模式保留 (windows/dynamic-island/App.vue): 拖离顶部后仍保持原胶囊浮窗交互,不影响自由移动使用场景。

3. 验证

  • 执行 pnpm typecheck,类型检查通过。
  • 执行 pnpm build:mac,构建通过,使用正常。
  • 手动在 MacBook 刘海屏上验证灵动岛顶部居中、贴合真机刘海,短歌词最小宽度覆盖刘海,长歌词会自动扩展并保持可读。
qq_pic_merged_1781960446849

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