mac: add an option to change the App activation policy

useful to hide the app icon in the Dock if necessary.
This commit is contained in:
der richter 2020-09-15 16:44:12 +02:00
parent e28724d90d
commit 03047a0169
4 changed files with 28 additions and 1 deletions

View File

@ -5858,6 +5858,13 @@ The following video options are currently all specific to ``--vo=gpu`` and
set anyway.
OS X and cocoa-cb only
``--macos-app-activation-policy=<regular|accessory|prohibited>``
Changes the App activation policy. With accessory the mpv icon in the Dock
can be hidden. (default: regular)
macOS only.
``--android-surface-size=<WxH>``
Set dimensions of the rendering surface used by the Android gpu context.
Needs to be set by the embedding application if the dimensions change during

View File

@ -28,6 +28,7 @@ struct macos_opts {
struct m_color macos_title_bar_color;
int macos_fs_animation_duration;
int macos_force_dedicated_gpu;
int macos_app_activation_policy;
int cocoa_cb_sw_renderer;
int cocoa_cb_10bit_context;
};

View File

@ -63,6 +63,8 @@ const struct m_sub_options macos_conf = {
OPT_CHOICE(macos_fs_animation_duration, {"default", -1}),
M_RANGE(0, 1000)},
{"macos-force-dedicated-gpu", OPT_FLAG(macos_force_dedicated_gpu)},
{"macos-app-activation-policy", OPT_CHOICE(macos_app_activation_policy,
{"regular", 0}, {"accessory", 1}, {"prohibited", 2})},
{"cocoa-cb-sw-renderer", OPT_CHOICE(cocoa_cb_sw_renderer,
{"auto", -1}, {"no", 0}, {"yes", 1})},
{"cocoa-cb-10bit-context", OPT_FLAG(cocoa_cb_10bit_context)},

View File

@ -61,7 +61,24 @@ class Common: NSObject {
}
func initApp() {
NSApp.setActivationPolicy(.regular)
guard let mpv = mpv else {
log.sendError("Something went wrong, no MPVHelper was initialized")
exit(1)
}
var policy: NSApplication.ActivationPolicy = .regular
switch mpv.macOpts.macos_app_activation_policy {
case 0:
policy = .regular
case 1:
policy = .accessory
case 2:
policy = .prohibited
default:
break
}
NSApp.setActivationPolicy(policy)
setAppIcon()
}