Skip to content

Commit 13deea2

Browse files
committed
fix(macos): normalize settings pane margins
1 parent 1912be8 commit 13deea2

15 files changed

Lines changed: 35 additions & 39 deletions

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ Docs: https://docs.openclaw.ai
8787
- UI: show reasoning choices as plain labels instead of leaking internal override wording in session and chat pickers.
8888
- Mac app: avoid repeating the Configuration heading inside channel quick settings.
8989
- Mac app: keep the Settings sidebar always visible and remove the redundant titlebar hide/show control.
90+
- Mac app: normalize Settings pane content margins so pages share the same left and right rail.
9091
- Mac app: prefer explicit private/Tailscale/LAN Gateway endpoints over SSH tunnels, preserve legacy loopback tunnel configs, persist transport choices, and show captured SSH stderr when tunneling really fails.
9192
- Gateway/sessions: keep ACP/acpx and runtime child sessions visible in configured-only session lists when their owner or parent session belongs to a configured agent.
9293
- Mac app: keep app-level menu commands and Dashboard failure states reachable when the remote Gateway is disconnected.

apps/macos/Sources/OpenClaw/AboutSettings.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,7 @@ struct AboutSettings: View {
8585
Spacer()
8686
}
8787
.frame(maxWidth: .infinity, maxHeight: .infinity)
88-
.padding(.top, 4)
89-
.padding(.horizontal, 24)
90-
.padding(.bottom, 24)
88+
.settingsDetailContent()
9189
.onAppear {
9290
guard let updater, !self.didLoadUpdaterState else { return }
9391
// Keep Sparkle’s auto-check setting in sync with the persisted toggle.

apps/macos/Sources/OpenClaw/ChannelsSettings+View.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ extension ChannelsSettings {
88
self.detail
99
}
1010
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
11+
.settingsDetailContent()
1112
.onAppear {
1213
self.updateActiveWork(active: self.isActive)
1314
self.ensureSelection(in: channels)
@@ -72,8 +73,8 @@ extension ChannelsSettings {
7273
.font(.callout)
7374
.foregroundStyle(.secondary)
7475
}
75-
.padding(.horizontal, 24)
76-
.padding(.vertical, 18)
76+
.padding(.horizontal, SettingsLayout.detailHorizontalPadding)
77+
.padding(.vertical, SettingsLayout.detailVerticalPadding)
7778
}
7879

7980
private func channelDetail(_ channel: ChannelItem) -> some View {
@@ -85,8 +86,8 @@ extension ChannelsSettings {
8586
Spacer(minLength: 0)
8687
}
8788
.frame(maxWidth: .infinity, alignment: .leading)
88-
.padding(.horizontal, 24)
89-
.padding(.vertical, 18)
89+
.padding(.horizontal, SettingsLayout.detailHorizontalPadding)
90+
.padding(.vertical, SettingsLayout.detailVerticalPadding)
9091
}
9192
}
9293

apps/macos/Sources/OpenClaw/ConfigSettings.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ struct ConfigSettings: View {
1919
self.detail
2020
}
2121
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
22+
.settingsDetailContent()
2223
.task {
2324
guard !self.hasLoaded else { return }
2425
guard !self.isPreview else { return }
@@ -117,8 +118,8 @@ extension ConfigSettings {
117118
.font(.callout)
118119
.foregroundStyle(.secondary)
119120
}
120-
.padding(.horizontal, 24)
121-
.padding(.vertical, 18)
121+
.padding(.horizontal, SettingsLayout.detailHorizontalPadding)
122+
.padding(.vertical, SettingsLayout.detailVerticalPadding)
122123
}
123124

124125
private var schemaUnavailableDetail: some View {
@@ -129,8 +130,8 @@ extension ConfigSettings {
129130
.foregroundStyle(.secondary)
130131
self.actionRow
131132
}
132-
.padding(.horizontal, 24)
133-
.padding(.vertical, 18)
133+
.padding(.horizontal, SettingsLayout.detailHorizontalPadding)
134+
.padding(.vertical, SettingsLayout.detailVerticalPadding)
134135
}
135136

136137
private func sectionDetail(_ section: ConfigSection) -> some View {
@@ -153,8 +154,8 @@ extension ConfigSettings {
153154
Spacer(minLength: 0)
154155
}
155156
.frame(maxWidth: .infinity, alignment: .leading)
156-
.padding(.horizontal, 24)
157-
.padding(.vertical, 18)
157+
.padding(.horizontal, SettingsLayout.detailHorizontalPadding)
158+
.padding(.vertical, SettingsLayout.detailVerticalPadding)
158159
.groupBoxStyle(PlainSettingsGroupBoxStyle())
159160
}
160161
}

apps/macos/Sources/OpenClaw/CronSettings+Layout.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ extension CronSettings {
99
Spacer(minLength: 0)
1010
}
1111
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
12-
.padding(.leading, 18)
13-
.padding(.trailing, SettingsLayout.scrollbarGutter)
12+
.settingsDetailContent()
1413
.onAppear {
1514
self.updateActiveWork(active: self.isActive)
1615
}

apps/macos/Sources/OpenClaw/DebugSettings.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ struct DebugSettings: View {
6262

6363
Spacer(minLength: 0)
6464
}
65-
.frame(maxWidth: .infinity, alignment: .leading)
66-
.padding(.vertical, 4)
67-
.padding(.trailing, SettingsLayout.scrollbarGutter)
65+
.settingsDetailContent()
6866
.groupBoxStyle(PlainSettingsGroupBoxStyle())
6967
}
7068
.task {

apps/macos/Sources/OpenClaw/GeneralSettings.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ struct GeneralSettings: View {
4646
self.connectionPage
4747
}
4848
}
49-
.frame(maxWidth: 760, alignment: .leading)
50-
.padding(.bottom, 16)
51-
.padding(.leading, 18)
52-
.padding(.trailing, SettingsLayout.scrollbarGutter)
49+
.settingsDetailContent()
5350
}
5451
.onAppear {
5552
self.updateActiveWork(active: self.isActive)

apps/macos/Sources/OpenClaw/InstancesSettings.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ struct InstancesSettings: View {
3232
Spacer()
3333
}
3434
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
35-
.padding(.leading, 18)
36-
.padding(.trailing, SettingsLayout.scrollbarGutter)
35+
.settingsDetailContent()
3736
.onAppear { self.updateActiveWork(active: self.isActive) }
3837
.onChange(of: self.isActive) { _, active in
3938
self.updateActiveWork(active: active)

apps/macos/Sources/OpenClaw/PermissionsSettings.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ struct PermissionsSettings: View {
3636
}
3737
}
3838
}
39-
.frame(maxWidth: 760, alignment: .leading)
40-
.padding(.trailing, SettingsLayout.scrollbarGutter)
41-
.padding(.vertical, 4)
39+
.settingsDetailContent()
4240
}
4341
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
4442
}

apps/macos/Sources/OpenClaw/SessionsSettings.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ struct SessionsSettings: View {
2424
Spacer()
2525
}
2626
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
27-
.padding(.leading, 18)
28-
.padding(.trailing, SettingsLayout.scrollbarGutter)
27+
.settingsDetailContent()
2928
.task {
3029
guard !self.hasLoaded else { return }
3130
guard !self.isPreview else { return }

0 commit comments

Comments
 (0)