Skip to content

[bug][macOS Desktop] 右侧栏 tab 条顶部按钮点击失效(×/+ 经常点不动),底部面板正常 #596

Description

@sci-zyf

在 macOS 的 DSH Desktop 里用 better-sidebar,发现右侧栏展开的时候 tab 条的关闭按钮和 + 经常点不动,多点几次偶尔能成,挺烦的。一开始以为是版本问题,从 0.18.0 升到 0.18.1 也一样。但同一套东西放到底部面板就完全正常,浏览器里也没问题,所以怀疑跟桌面壳有关。

查了下,DSH Desktop(macOS 无边框窗口)会在页面顶部注入一条透明的窗口拖拽区:

#dsh-desktop-drag-region {
  position: fixed; top: 0; height: 24px;
  left: 80px; right: 220px;
  pointer-events: auto;
  -webkit-app-region: drag;
}

右侧栏展开时 tab 条正好压在窗口最顶上(y≈0~34px),跟这条拖拽区重叠。Electron 的规矩是拖拽区里的控件收不到点击,必须在控件自己身上声明 -webkit-app-region: no-drag 才行。

现在 sidebar.module.css 里只给容器加了 no-drag(.toggleCluster / .toggleButton / .tabBar / .floatHeader),tab 条里面的 .tab.tabClose.tabBarPlus 这些叶子没有。容器豁免显然不够——之前 #103/#111 是给按钮本身加的 no-drag,所以右上角那个折叠簇修好了,tab 条一直没人管。底部面板的 tab 条在窗口中间、不在拖拽区里,所以不受影响,正好解释为什么只有侧边栏失灵。

本地把规则改成连 .tabBar * 一起豁免之后就好了,点 × 和 + 都正常,拖 tab 也没受影响。改动就一行:

.toggleCluster,
.toggleButton,
.tabBar,
.tabBar *,
.floatHeader {
  -webkit-app-region: no-drag;
}

麻烦作者看下,谢谢。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions