diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2021-02-20 23:07:00 +0300 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2021-02-21 13:38:53 +0100 |
commit | f913570aada74df0e56b3224bfe9f712c95789d1 (patch) | |
tree | 9b9fd9ffb597e9ab6fa104f6a044e7bf3e3ef3cf | |
parent | c766e47b7095568509173e49fb049ff1b501b71d (diff) | |
download | mpv-f913570aada74df0e56b3224bfe9f712c95789d1.tar.bz2 mpv-f913570aada74df0e56b3224bfe9f712c95789d1.tar.xz |
mac: support --on-all-workspaces option
-rw-r--r-- | DOCS/man/options.rst | 2 | ||||
-rw-r--r-- | video/out/mac/common.swift | 5 | ||||
-rw-r--r-- | video/out/mac/window.swift | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 755e8c1748..1a56e2b843 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -2999,7 +2999,7 @@ Window applied to window/video with size exceeding size of the screen. ``--on-all-workspaces`` - (X11 only) + (X11 and macOS only) Show the video window on all virtual desktops. ``--geometry=<[W[xH]][+-x+-y][/WS]>``, ``--geometry=<x:y>`` diff --git a/video/out/mac/common.swift b/video/out/mac/common.swift index 6c3d0fcfb3..7ede81cbda 100644 --- a/video/out/mac/common.swift +++ b/video/out/mac/common.swift @@ -100,6 +100,7 @@ class Common: NSObject { } window.setOnTop(Bool(mpv.opts.ontop), Int(mpv.opts.ontop_level)) + window.setOnAllWorkspaces(Bool(mpv.opts.all_workspaces)) window.keepAspect = Bool(mpv.opts.keepaspect_window) window.title = title window.border = Bool(mpv.opts.border) @@ -547,6 +548,10 @@ class Common: NSObject { DispatchQueue.main.async { self.window?.setOnTop(Bool(mpv.opts.ontop), Int(mpv.opts.ontop_level)) } + case MPVHelper.getPointer(&mpv.optsPtr.pointee.all_workspaces): + DispatchQueue.main.async { + self.window?.setOnAllWorkspaces(Bool(mpv.opts.all_workspaces)) + } case MPVHelper.getPointer(&mpv.optsPtr.pointee.keepaspect_window): DispatchQueue.main.async { self.window?.keepAspect = Bool(mpv.opts.keepaspect_window) diff --git a/video/out/mac/window.swift b/video/out/mac/window.swift index a418f2ce75..8bff330866 100644 --- a/video/out/mac/window.swift +++ b/video/out/mac/window.swift @@ -278,6 +278,14 @@ class Window: NSWindow, NSWindowDelegate { } } + func setOnAllWorkspaces(_ state: Bool) { + if state { + collectionBehavior.insert(.canJoinAllSpaces) + } else { + collectionBehavior.remove(.canJoinAllSpaces) + } + } + func setMinimized(_ stateWanted: Bool) { if isMiniaturized == stateWanted { return } |