diff options
author | der richter <der.richter@gmx.de> | 2020-02-22 12:22:16 +0100 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2020-02-22 13:56:31 +0100 |
commit | 327b092bfc1c0efacfe669d9a0c220ca921257fc (patch) | |
tree | f86324a74ea18d428c92f592c13356f2b8f5aaa3 /osdep | |
parent | 8e1ceaba343191996dfb280e8ce698675ea3ad43 (diff) | |
download | mpv-327b092bfc1c0efacfe669d9a0c220ca921257fc.tar.bz2 mpv-327b092bfc1c0efacfe669d9a0c220ca921257fc.tar.xz |
mac, cocoa: fix UI updates on none main queue threads
injecting the Apple Main Thread Checker via
DYLD_INSERT_LIBRARIES=libMainThreadChecker.dylib identified several
problems that needed fixing.
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/macosx_application.m | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m index 958b67b948..10a992da2c 100644 --- a/osdep/macosx_application.m +++ b/osdep/macosx_application.m @@ -99,8 +99,10 @@ static Application *mpv_shared_app(void) static void terminate_cocoa_application(void) { - [NSApp hide:NSApp]; - [NSApp terminate:NSApp]; + dispatch_async(dispatch_get_main_queue(), ^{ + [NSApp hide:NSApp]; + [NSApp terminate:NSApp]; + }); } @implementation Application @@ -300,7 +302,9 @@ static void init_cocoa_application(bool regular) // Because activation policy has just been set to behave like a real // application, that policy must be reset on exit to prevent, among // other things, the menubar created here from remaining on screen. - [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; + dispatch_async(dispatch_get_main_queue(), ^{ + [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; + }); }); } |