summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2020-09-15 16:44:12 +0200
committerder richter <der.richter@gmx.de>2020-09-20 15:28:50 +0200
commit03047a0169495c3323ecbaf1c7ea8029c082dc2e (patch)
treeceb6c001c8de057f4845dab52941adf2ff6e9bf4
parente28724d90d9d62c01c13d7da8ff2f10b490fc8ae (diff)
downloadmpv-03047a0169495c3323ecbaf1c7ea8029c082dc2e.tar.bz2
mpv-03047a0169495c3323ecbaf1c7ea8029c082dc2e.tar.xz
mac: add an option to change the App activation policy
useful to hide the app icon in the Dock if necessary.
-rw-r--r--DOCS/man/options.rst7
-rw-r--r--osdep/macosx_application.h1
-rw-r--r--osdep/macosx_application.m2
-rw-r--r--video/out/mac/common.swift19
4 files changed, 28 insertions, 1 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 75a7871c4a..b75e55e48d 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -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
diff --git a/osdep/macosx_application.h b/osdep/macosx_application.h
index 19babc5458..9a366d81fb 100644
--- a/osdep/macosx_application.h
+++ b/osdep/macosx_application.h
@@ -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;
};
diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m
index 225d6c59fa..95c6a3f953 100644
--- a/osdep/macosx_application.m
+++ b/osdep/macosx_application.m
@@ -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)},
diff --git a/video/out/mac/common.swift b/video/out/mac/common.swift
index 4b5e1265c0..fb52b80610 100644
--- a/video/out/mac/common.swift
+++ b/video/out/mac/common.swift
@@ -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()
}