diff --git a/macos/TinyBoard/Styles/MenuItemButtonStyle.swift b/macos/TinyBoard/Styles/MenuItemButtonStyle.swift index be79b7b..4c38bd8 100644 --- a/macos/TinyBoard/Styles/MenuItemButtonStyle.swift +++ b/macos/TinyBoard/Styles/MenuItemButtonStyle.swift @@ -20,9 +20,12 @@ import SwiftUI -struct MenuItemButtonStyle: ButtonStyle { +import AppKit - @Environment(\.isEnabled) private var isEnabled: Bool +struct MenuItemButtonStyle: PrimitiveButtonStyle { + + @Environment(\.dismissWindow) private var dismissWindow + @Environment(\.isEnabled) private var isEnabled @State var hover = false @@ -39,18 +42,22 @@ struct MenuItemButtonStyle: ButtonStyle { .foregroundColor(foregroundColor) .padding([.leading, .trailing], 12) .padding([.top, .bottom], 4) - .background(RoundedRectangle(cornerRadius: 4.0) - .fill(.primary.opacity(hover && isEnabled ? 0.2 : 0.0))) - .onHover { hover in - self.hover = hover - } Spacer() } + .background(RoundedRectangle(cornerRadius: 4.0) + .fill(.primary.opacity(hover && isEnabled ? 0.2 : 0.0))) + .onHover { hover in + self.hover = hover + } + .onTapGesture { + configuration.trigger() + dismissWindow() + } } } -extension ButtonStyle where Self == MenuItemButtonStyle { +extension PrimitiveButtonStyle where Self == MenuItemButtonStyle { static var menuItem: MenuItemButtonStyle { return MenuItemButtonStyle() diff --git a/macos/TinyBoard/TinyBoardApp.swift b/macos/TinyBoard/TinyBoardApp.swift index e3d5c1f..35d1a7b 100644 --- a/macos/TinyBoard/TinyBoardApp.swift +++ b/macos/TinyBoard/TinyBoardApp.swift @@ -29,8 +29,6 @@ struct TinyBoardApp: App { let model = ApplicationModel() var body: some Scene { - InputMenu(model: model) - } } diff --git a/macos/TinyBoard/Views/InputMenuContent.swift b/macos/TinyBoard/Views/InputMenuContent.swift index 8cce865..60a5200 100644 --- a/macos/TinyBoard/Views/InputMenuContent.swift +++ b/macos/TinyBoard/Views/InputMenuContent.swift @@ -25,8 +25,6 @@ import Interact struct InputMenuContent: View { - @Environment(\.dismissWindow) private var dismissWindow - @ObservedObject var model: ApplicationModel @State var openAtLogin = false @@ -61,27 +59,16 @@ struct InputMenuContent: View { MenuSection { UpdateLink(updater: model.updaterController.updater) - .frame(maxWidth: .infinity, alignment: .leading) - .simultaneousGesture(TapGesture().onEnded { - dismissWindow() - }) } MenuDivider() MenuSection { - Button { - dismissWindow() + Button("About") { model.showAbout() - } label: { - Text("About") - .horizontalSpace(.trailing) } - Button { + Button("Quit") { NSApplication.shared.terminate(nil) - } label: { - Text("Quit") - .horizontalSpace(.trailing) } }