Skip to content

feat: macOS 无边框窗口恢复原生红绿灯 - #352

Open
EveSunMaple wants to merge 4 commits into
SPlayer-Dev:devfrom
EveSunMaple:feat/mac-native-traffic-lights
Open

EveSunMaple wants to merge 4 commits into
SPlayer-Dev:devfrom
EveSunMaple:feat/mac-native-traffic-lights

Conversation

@EveSunMaple

Copy link
Copy Markdown

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)
  • 否

改动说明

macOS 无边框窗口此前使用自绘的窗口控制按钮,本次改为使用系统原生红绿灯(左上角),更符合 macOS 用户的使用习惯。

  • 主进程:macOS 开启「无边框窗口」时使用 titleBarStyle: "hidden" + trafficLightPosition: { x: 24, y: 24 },左侧与上方 24px 留白一致,并与 64px 顶栏内的 40px 控件垂直居中;Windows / Linux 保持自绘按钮不变
  • 渲染进程:新增 usesNativeTrafficLights / showCustomControls 状态,macOS 下隐藏自绘按钮与分隔线
  • 侧边栏(展开):顶栏作为 macOS 标题栏,Logo 与标题右移为红绿灯让位,并作为标题栏拖拽区
  • 侧边栏(收起):面板底色与分隔线从标题栏下方开始,带顶边与右上圆角连成半包围,图标下移留出间距;顶栏左侧内容同步让位,红绿灯不再横跨色块或分隔线
  • 灵动悬浮:悬浮面板整体下移,红绿灯位于面板上方,卡内 Logo 保持居中
  • 全屏播放器:macOS 下顶栏由 56px 抬升为 64px,与其他顶栏一致,红绿灯与播放器控件垂直居中
  • 进入全屏时以上让位全部还原

关联 Issue

Closes #349

测试情况

  • macOS 实机 pnpm dev 验证:红绿灯位置、拖拽、最小化 / 最大化 / 关闭正常;普通展开 / 收起、灵动悬浮(展开与收起)、全屏播放器、图片外观模式均无遮挡
  • pnpm typecheck、pnpm lint 通过

截图 / 录屏

主界面(展开)

image

侧边栏收起

image

灵动悬浮

image

全屏播放器顶栏

image

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheck、pnpm lint 通过
  • 改动不涉及原生模块(无需 pnpm build:native)
  • 已向 dev 分支提交

This branch has not been deployed

No deployments
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.

在 macOS 平台将窗口控制按钮放置到窗口左上角

1 participant