fix(mac): move action group below toggles
This commit is contained in:
@@ -51,45 +51,6 @@ struct MenuContent: View {
|
|||||||
if self.showVoiceWakeMicPicker {
|
if self.showVoiceWakeMicPicker {
|
||||||
self.voiceWakeMicMenu
|
self.voiceWakeMicMenu
|
||||||
}
|
}
|
||||||
Toggle(isOn: Binding(get: { self.state.canvasEnabled }, set: { self.state.canvasEnabled = $0 })) {
|
|
||||||
Label("Allow Canvas", systemImage: "rectangle.and.pencil.and.ellipsis")
|
|
||||||
}
|
|
||||||
.onChange(of: self.state.canvasEnabled) { _, enabled in
|
|
||||||
if !enabled {
|
|
||||||
CanvasManager.shared.hideAll()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if self.state.canvasEnabled {
|
|
||||||
Button {
|
|
||||||
if self.state.canvasPanelVisible {
|
|
||||||
CanvasManager.shared.hideAll()
|
|
||||||
} else {
|
|
||||||
// Don't force a navigation on re-open: preserve the current web view state.
|
|
||||||
_ = try? CanvasManager.shared.show(sessionKey: "main", path: nil)
|
|
||||||
}
|
|
||||||
} label: {
|
|
||||||
Label(
|
|
||||||
self.state.canvasPanelVisible ? "Close Canvas" : "Open Canvas",
|
|
||||||
systemImage: "rectangle.inset.filled.on.rectangle")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Divider()
|
|
||||||
Button {
|
|
||||||
Task { @MainActor in
|
|
||||||
let sessionKey = await WebChatManager.shared.preferredSessionKey()
|
|
||||||
WebChatManager.shared.show(sessionKey: sessionKey)
|
|
||||||
}
|
|
||||||
} label: {
|
|
||||||
Label("Open Chat", systemImage: "bubble.left.and.bubble.right")
|
|
||||||
}
|
|
||||||
Button {
|
|
||||||
Task { @MainActor in
|
|
||||||
await self.openDashboard()
|
|
||||||
}
|
|
||||||
} label: {
|
|
||||||
Label("Open Dashboard", systemImage: "gauge")
|
|
||||||
}
|
|
||||||
Divider()
|
|
||||||
Toggle(
|
Toggle(
|
||||||
isOn: Binding(
|
isOn: Binding(
|
||||||
get: { self.browserControlEnabled },
|
get: { self.browserControlEnabled },
|
||||||
@@ -99,6 +60,43 @@ struct MenuContent: View {
|
|||||||
})) {
|
})) {
|
||||||
Label("Browser Control", systemImage: "globe")
|
Label("Browser Control", systemImage: "globe")
|
||||||
}
|
}
|
||||||
|
Toggle(isOn: Binding(get: { self.state.canvasEnabled }, set: { self.state.canvasEnabled = $0 })) {
|
||||||
|
Label("Allow Canvas", systemImage: "rectangle.and.pencil.and.ellipsis")
|
||||||
|
}
|
||||||
|
.onChange(of: self.state.canvasEnabled) { _, enabled in
|
||||||
|
if !enabled {
|
||||||
|
CanvasManager.shared.hideAll()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Divider()
|
||||||
|
Button {
|
||||||
|
Task { @MainActor in
|
||||||
|
await self.openDashboard()
|
||||||
|
}
|
||||||
|
} label: {
|
||||||
|
Label("Open Dashboard", systemImage: "gauge")
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
Task { @MainActor in
|
||||||
|
let sessionKey = await WebChatManager.shared.preferredSessionKey()
|
||||||
|
WebChatManager.shared.show(sessionKey: sessionKey)
|
||||||
|
}
|
||||||
|
} label: {
|
||||||
|
Label("Open Chat", systemImage: "bubble.left.and.bubble.right")
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
if self.state.canvasPanelVisible {
|
||||||
|
CanvasManager.shared.hideAll()
|
||||||
|
} else {
|
||||||
|
// Don't force a navigation on re-open: preserve the current web view state.
|
||||||
|
_ = try? CanvasManager.shared.show(sessionKey: "main", path: nil)
|
||||||
|
}
|
||||||
|
} label: {
|
||||||
|
Label(
|
||||||
|
self.state.canvasPanelVisible ? "Close Canvas" : "Open Canvas",
|
||||||
|
systemImage: "rectangle.inset.filled.on.rectangle")
|
||||||
|
}
|
||||||
|
.disabled(!self.state.canvasEnabled)
|
||||||
Divider()
|
Divider()
|
||||||
Button("Settings…") { self.open(tab: .general) }
|
Button("Settings…") { self.open(tab: .general) }
|
||||||
.keyboardShortcut(",", modifiers: [.command])
|
.keyboardShortcut(",", modifiers: [.command])
|
||||||
|
|||||||
@@ -426,6 +426,7 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
|
|||||||
|
|
||||||
private func buildNodeSubmenu(entry: InstanceInfo) -> NSMenu {
|
private func buildNodeSubmenu(entry: InstanceInfo) -> NSMenu {
|
||||||
let menu = NSMenu()
|
let menu = NSMenu()
|
||||||
|
menu.autoenablesItems = false
|
||||||
|
|
||||||
menu.addItem(self.makeNodeCopyItem(label: "ID", value: entry.id))
|
menu.addItem(self.makeNodeCopyItem(label: "ID", value: entry.id))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user