From 4c8aa4c3ca622d7b4b778dda38ada6d0ebeea9fe Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 14 Jun 2021 23:16:41 +0200 Subject: [PATCH] app/internal/wm: [macOS] make app emnu responsive on launch The macOS app menu would respond to clicks, only to shotcuts (Cmd-Q, Cmd-H). Moving setActivationPolicy to applicationDidFinishLaunching seems to fix that, although I can't explain why. Move a SetDriver call after initialization while here. Signed-off-by: Elias Naur --- app/internal/wm/os_macos.go | 2 +- app/internal/wm/os_macos.m | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/internal/wm/os_macos.go b/app/internal/wm/os_macos.go index 103b92e1..7e774993 100644 --- a/app/internal/wm/os_macos.go +++ b/app/internal/wm/os_macos.go @@ -395,9 +395,9 @@ func NewWindow(win Callbacks, opts *Options) error { return } errch <- nil - win.SetDriver(w) w.w = win w.window = C.gio_createWindow(w.view, nil, 0, 0, 0, 0, 0, 0) + win.SetDriver(w) w.Option(opts) if nextTopLeft.x == 0 && nextTopLeft.y == 0 { // cascadeTopLeftFromPoint treats (0, 0) as a no-op, diff --git a/app/internal/wm/os_macos.m b/app/internal/wm/os_macos.m index 8befc0c1..7453b9a3 100644 --- a/app/internal/wm/os_macos.m +++ b/app/internal/wm/os_macos.m @@ -316,7 +316,8 @@ CFTypeRef gio_createView(void) { @implementation GioAppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - [[NSRunningApplication currentApplication] activateWithOptions:(NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps)]; + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; + [NSApp activateIgnoringOtherApps:YES]; gio_onFinishLaunching(); } - (void)applicationDidHide:(NSNotification *)aNotification { @@ -332,7 +333,6 @@ void gio_main() { [NSApplication sharedApplication]; GioAppDelegate *del = [[GioAppDelegate alloc] init]; [NSApp setDelegate:del]; - [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; NSMenuItem *mainMenu = [NSMenuItem new];