From f913570aada74df0e56b3224bfe9f712c95789d1 Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Sat, 20 Feb 2021 23:07:00 +0300 Subject: mac: support --on-all-workspaces option --- DOCS/man/options.rst | 2 +- video/out/mac/common.swift | 5 +++++ video/out/mac/window.swift | 8 ++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) 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=`` 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 } -- cgit v1.2.3