fix(macos): keep Settings below native titlebar controls (#102663)

* fix(macos): clear settings titlebar controls

* chore: leave release notes to release automation
This commit is contained in:
Peter Steinberger 2026-07-09 11:41:29 +01:00 committed by GitHub
parent e635cdbbe9
commit 201acd4e7a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 1 deletions

View file

@ -206,7 +206,10 @@ final class DashboardWindowController: NSWindowController, WKNavigationDelegate,
--openclaw-native-titlebar-height: 50px;
}
@media (min-width: 700px) {
html.openclaw-native-macos .sidebar-shell {
/* Both desktop navigation surfaces must clear AppKit's window controls
and drag regions or their first interactive row becomes unreachable. */
html.openclaw-native-macos .sidebar-shell,
html.openclaw-native-macos .settings-sidebar__header {
padding-top: max(14px, var(--openclaw-native-titlebar-height)) !important;
}
}

View file

@ -43,6 +43,20 @@ struct DashboardWindowSmokeTests {
#expect(dashboardLogString(for: url) == "http://127.0.0.1:18789/control/")
}
@Test func `dashboard native chrome clears both desktop sidebars`() throws {
let url = try #require(URL(string: "http://127.0.0.1:18789/control/"))
let controller = DashboardWindowController(
url: url,
auth: DashboardWindowAuth(gatewayUrl: nil, token: nil, password: nil))
let chromeScript = try #require(controller._testUserScripts.first {
$0.source.contains("openclaw-native-macos-chrome")
})
#expect(chromeScript.source.contains(".sidebar-shell"))
#expect(chromeScript.source.contains(".settings-sidebar__header"))
#expect(chromeScript.source.contains("--openclaw-native-titlebar-height"))
}
@Test func `dashboard failure state opens in dashboard window`() throws {
let url = try #require(URL(string: "http://127.0.0.1:18789/control/"))
let controller = DashboardWindowController(