diff options
author | der richter <der.richter@gmx.de> | 2024-04-27 22:11:33 +0200 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2024-04-28 20:21:18 +0200 |
commit | 8f1189341fcc5cddc92056078aa2439d451d1c98 (patch) | |
tree | 4ab3a10de71ff54ca05ddfb4498be17b17272f9d /video | |
parent | 984c890661fef3bc5e326a291803c10ed86b6350 (diff) | |
download | mpv-8f1189341fcc5cddc92056078aa2439d451d1c98.tar.bz2 mpv-8f1189341fcc5cddc92056078aa2439d451d1c98.tar.xz |
mac: code cleanup and consistency changes, fix linting issues
Diffstat (limited to 'video')
-rw-r--r-- | video/out/cocoa_cb_common.swift | 19 | ||||
-rw-r--r-- | video/out/mac/common.swift | 51 | ||||
-rw-r--r-- | video/out/mac/gl_layer.swift | 30 | ||||
-rw-r--r-- | video/out/mac/title_bar.swift | 45 | ||||
-rw-r--r-- | video/out/mac/view.swift | 3 | ||||
-rw-r--r-- | video/out/mac/window.swift | 62 | ||||
-rw-r--r-- | video/out/mac_common.swift | 15 |
7 files changed, 103 insertions, 122 deletions
diff --git a/video/out/cocoa_cb_common.swift b/video/out/cocoa_cb_common.swift index 9f32ed651f..38c47a19a2 100644 --- a/video/out/cocoa_cb_common.swift +++ b/video/out/cocoa_cb_common.swift @@ -87,8 +87,7 @@ class CocoaCB: Common, EventSubscriber { } func updateWindowSize(_ vo: UnsafeMutablePointer<vo>) { - guard let targetScreen = getTargetScreen(forFullscreen: false) ?? NSScreen.main else - { + guard let targetScreen = getTargetScreen(forFullscreen: false) ?? NSScreen.main else { log.warning("Couldn't update Window size, no Screen available") return } @@ -102,11 +101,10 @@ class CocoaCB: Common, EventSubscriber { } override func displayLinkCallback(_ displayLink: CVDisplayLink, - _ inNow: UnsafePointer<CVTimeStamp>, - _ inOutputTime: UnsafePointer<CVTimeStamp>, - _ flagsIn: CVOptionFlags, - _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn - { + _ inNow: UnsafePointer<CVTimeStamp>, + _ inOutputTime: UnsafePointer<CVTimeStamp>, + _ flagsIn: CVOptionFlags, + _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn { libmpv.reportRenderFlip() return kCVReturnSuccess } @@ -178,10 +176,9 @@ class CocoaCB: Common, EventSubscriber { } override func control(_ vo: UnsafeMutablePointer<vo>, - events: UnsafeMutablePointer<Int32>, - request: UInt32, - data: UnsafeMutableRawPointer?) -> Int32 - { + events: UnsafeMutablePointer<Int32>, + request: UInt32, + data: UnsafeMutableRawPointer?) -> Int32 { switch mp_voctrl(request) { case VOCTRL_PREINIT: DispatchQueue.main.sync { self.preinit(vo) } diff --git a/video/out/mac/common.swift b/video/out/mac/common.swift index eeb972064d..50a508e872 100644 --- a/video/out/mac/common.swift +++ b/video/out/mac/common.swift @@ -158,11 +158,10 @@ class Common: NSObject { } func displayLinkCallback(_ displayLink: CVDisplayLink, - _ inNow: UnsafePointer<CVTimeStamp>, - _ inOutputTime: UnsafePointer<CVTimeStamp>, - _ flagsIn: CVOptionFlags, - _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn - { + _ inNow: UnsafePointer<CVTimeStamp>, + _ inOutputTime: UnsafePointer<CVTimeStamp>, + _ flagsIn: CVOptionFlags, + _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn { return kCVReturnSuccess } @@ -170,8 +169,7 @@ class Common: NSObject { CVDisplayLinkCreateWithActiveCGDisplays(&link) guard let screen = getTargetScreen(forFullscreen: false) ?? NSScreen.main, - let link = self.link else - { + let link = self.link else { log.warning("Couldn't start DisplayLink, no Screen or DisplayLink available") return } @@ -261,7 +259,7 @@ class Common: NSObject { return lux > 0 ? lux : 0 } - var lightSensorCallback: IOServiceInterestCallback = { (ctx, service, messageType, messageArgument) -> Void in + var lightSensorCallback: IOServiceInterestCallback = { (ctx, _ service, _ messageType, _ messageArgument) in let com = unsafeBitCast(ctx, to: Common.self) var outputs: UInt32 = 2 @@ -291,7 +289,8 @@ class Common: NSObject { lightSensorIOPort = IONotificationPortCreate(kIOMasterPortDefault) IONotificationPortSetDispatchQueue(lightSensorIOPort, queue) var n = io_object_t() - IOServiceAddInterestNotification(lightSensorIOPort, srv, kIOGeneralInterest, lightSensorCallback, TypeHelper.bridge(obj: self), &n) + IOServiceAddInterestNotification(lightSensorIOPort, srv, kIOGeneralInterest, lightSensorCallback, + TypeHelper.bridge(obj: self), &n) let kr = IOServiceOpen(srv, mach_task_self_, 0, &lightSensor) IOObjectRelease(srv) @@ -386,10 +385,9 @@ class Common: NSObject { } func getScreenBy(name screenName: String?) -> NSScreen? { - for screen in NSScreen.screens { - if [screen.localizedName, screen.name, screen.uniqueName, screen.serialNumber].contains(screenName) { - return screen - } + for screen in NSScreen.screens + where [screen.localizedName, screen.name, screen.uniqueName, screen.serialNumber].contains(screenName) { + return screen } return nil } @@ -436,7 +434,7 @@ class Common: NSObject { // flip the y origin again let y = CGFloat(-geo.win.y1) let x = CGFloat(geo.win.x0) - return screen.convertRectFromBacking(NSMakeRect(x, y, width, height)) + return screen.convertRectFromBacking(NSRect(x: x, y: y, width: width, height: height)) } func getInitProperties(_ vo: UnsafeMutablePointer<vo>) -> (NSScreen, NSRect) { @@ -488,10 +486,9 @@ class Common: NSObject { func windowDidChangeOcclusionState() {} @objc func control(_ vo: UnsafeMutablePointer<vo>, - events: UnsafeMutablePointer<Int32>, - request: UInt32, - data: UnsafeMutableRawPointer?) -> Int32 - { + events: UnsafeMutablePointer<Int32>, + request: UInt32, + data: UnsafeMutableRawPointer?) -> Int32 { switch mp_voctrl(request) { case VOCTRL_CHECK_EVENTS: events.pointee |= Int32(checkEvents()) @@ -508,8 +505,8 @@ class Common: NSObject { DispatchQueue.main.async { self.window?.toggleFullScreen(nil) } - case TypeHelper.toPointer(&option.voPtr.pointee.ontop): fallthrough - case TypeHelper.toPointer(&option.voPtr.pointee.ontop_level): + case TypeHelper.toPointer(&option.voPtr.pointee.ontop), + TypeHelper.toPointer(&option.voPtr.pointee.ontop_level): DispatchQueue.main.async { self.window?.setOnTop(Bool(self.option.vo.ontop), Int(self.option.vo.ontop_level)) } @@ -533,10 +530,10 @@ class Common: NSObject { DispatchQueue.main.async { self.window?.ignoresMouseEvents = self.option.vo.cursor_passthrough } - case TypeHelper.toPointer(&option.voPtr.pointee.geometry): fallthrough - case TypeHelper.toPointer(&option.voPtr.pointee.autofit): fallthrough - case TypeHelper.toPointer(&option.voPtr.pointee.autofit_smaller): fallthrough - case TypeHelper.toPointer(&option.voPtr.pointee.autofit_larger): + case TypeHelper.toPointer(&option.voPtr.pointee.geometry), + TypeHelper.toPointer(&option.voPtr.pointee.autofit), + TypeHelper.toPointer(&option.voPtr.pointee.autofit_smaller), + TypeHelper.toPointer(&option.voPtr.pointee.autofit_larger): DispatchQueue.main.async { let (_, wr) = self.getInitProperties(vo) self.window?.updateFrame(wr) @@ -595,7 +592,7 @@ class Common: NSObject { if lightSensor != 0 { let lux = data!.assumingMemoryBound(to: Int32.self) lux.pointee = Int32(lmuToLux(lastLmu)) - return VO_TRUE; + return VO_TRUE } return VO_NOTIMPL case VOCTRL_GET_UNFS_WINDOW_SIZE: @@ -610,7 +607,7 @@ class Common: NSObject { case VOCTRL_SET_UNFS_WINDOW_SIZE: let sizeData = data!.assumingMemoryBound(to: Int32.self) let size = UnsafeBufferPointer(start: sizeData, count: 2) - var rect = NSMakeRect(0, 0, CGFloat(size[0]), CGFloat(size[1])) + var rect = NSRect(x: 0, y: 0, width: CGFloat(size[0]), height: CGFloat(size[1])) DispatchQueue.main.async { if let screen = self.window?.currentScreen, !Bool(self.option.vo.hidpi_window_scale) { rect = screen.convertRectFromBacking(rect) @@ -620,7 +617,7 @@ class Common: NSObject { return VO_TRUE case VOCTRL_GET_DISPLAY_NAMES: let dnames = data!.assumingMemoryBound(to: UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>?.self) - var array: UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>? = nil + var array: UnsafeMutablePointer<UnsafeMutablePointer<Int8>?>? var count: Int32 = 0 let displayName = getCurrentScreen()?.uniqueName ?? "Unknown" diff --git a/video/out/mac/gl_layer.swift b/video/out/mac/gl_layer.swift index 38320bcb71..eba6f1a2d4 100644 --- a/video/out/mac/gl_layer.swift +++ b/video/out/mac/gl_layer.swift @@ -52,24 +52,24 @@ let glFormatAutoGPU: [CGLPixelFormatAttribute] = [ kCGLPFASupportsAutomaticGraphicsSwitching ] -let attributeLookUp: [UInt32:String] = [ - kCGLOGLPVersion_3_2_Core.rawValue: "kCGLOGLPVersion_3_2_Core", - kCGLOGLPVersion_Legacy.rawValue: "kCGLOGLPVersion_Legacy", - kCGLPFAOpenGLProfile.rawValue: "kCGLPFAOpenGLProfile", - UInt32(kCGLRendererGenericFloatID): "kCGLRendererGenericFloatID", - kCGLPFARendererID.rawValue: "kCGLPFARendererID", - kCGLPFAAccelerated.rawValue: "kCGLPFAAccelerated", - kCGLPFADoubleBuffer.rawValue: "kCGLPFADoubleBuffer", - kCGLPFABackingStore.rawValue: "kCGLPFABackingStore", - kCGLPFAColorSize.rawValue: "kCGLPFAColorSize", - kCGLPFAColorFloat.rawValue: "kCGLPFAColorFloat", +let attributeLookUp: [UInt32: String] = [ + kCGLOGLPVersion_3_2_Core.rawValue: "kCGLOGLPVersion_3_2_Core", + kCGLOGLPVersion_Legacy.rawValue: "kCGLOGLPVersion_Legacy", + kCGLPFAOpenGLProfile.rawValue: "kCGLPFAOpenGLProfile", + UInt32(kCGLRendererGenericFloatID): "kCGLRendererGenericFloatID", + kCGLPFARendererID.rawValue: "kCGLPFARendererID", + kCGLPFAAccelerated.rawValue: "kCGLPFAAccelerated", + kCGLPFADoubleBuffer.rawValue: "kCGLPFADoubleBuffer", + kCGLPFABackingStore.rawValue: "kCGLPFABackingStore", + kCGLPFAColorSize.rawValue: "kCGLPFAColorSize", + kCGLPFAColorFloat.rawValue: "kCGLPFAColorFloat", kCGLPFAAllowOfflineRenderers.rawValue: "kCGLPFAAllowOfflineRenderers", - kCGLPFASupportsAutomaticGraphicsSwitching.rawValue: "kCGLPFASupportsAutomaticGraphicsSwitching", + kCGLPFASupportsAutomaticGraphicsSwitching.rawValue: "kCGLPFASupportsAutomaticGraphicsSwitching" ] class GLLayer: CAOpenGLLayer { unowned var cocoaCB: CocoaCB - var libmpv: LibmpvHelper { get { return cocoaCB.libmpv } } + var libmpv: LibmpvHelper { return cocoaCB.libmpv } let displayLock = NSLock() let cglContext: CGLContextObj @@ -176,7 +176,7 @@ class GLLayer: CAOpenGLLayer { glGetIntegerv(GLenum(GL_VIEWPORT), &dims) surfaceSize = NSSize(width: CGFloat(dims[2]), height: CGFloat(dims[3])) - if NSEqualSizes(surfaceSize, NSZeroSize) { + if surfaceSize == NSSize.zero { surfaceSize = bounds.size surfaceSize.width *= contentsScale surfaceSize.height *= contentsScale @@ -228,7 +228,7 @@ class GLLayer: CAOpenGLLayer { lockCglContext() CGLSetCurrentContext(cglContext) if libmpv.isRenderUpdateFrame() { - libmpv.drawRender(NSZeroSize, bufferDepth, cglContext, skip: true) + libmpv.drawRender(NSSize.zero, bufferDepth, cglContext, skip: true) } unlockCglContext() } diff --git a/video/out/mac/title_bar.swift b/video/out/mac/title_bar.swift index b274100dcf..98d94c14ce 100644 --- a/video/out/mac/title_bar.swift +++ b/video/out/mac/title_bar.swift @@ -19,16 +19,14 @@ import Cocoa class TitleBar: NSVisualEffectView { unowned var common: Common - var option: OptionHelper { get { return common.option } } + var option: OptionHelper { return common.option } - var systemBar: NSView? { - get { return common.window?.standardWindowButton(.closeButton)?.superview } - } + var systemBar: NSView? { return common.window?.standardWindowButton(.closeButton)?.superview } static var height: CGFloat { - get { return NSWindow.frameRect(forContentRect: CGRect.zero, styleMask: .titled).size.height } + return NSWindow.frameRect(forContentRect: CGRect.zero, styleMask: .titled).size.height } var buttons: [NSButton] { - get { return ([.closeButton, .miniaturizeButton, .zoomButton] as [NSWindow.ButtonType]).compactMap { common.window?.standardWindowButton($0) } } + return ([.closeButton, .miniaturizeButton, .zoomButton] as [NSWindow.ButtonType]).compactMap { common.window?.standardWindowButton($0) } } override var material: NSVisualEffectView.Material { @@ -36,20 +34,16 @@ class TitleBar: NSVisualEffectView { set { super.material = newValue // fix for broken deprecated materials - if material == .light || material == .dark || material == .mediumLight || - material == .ultraDark - { + if material == .light || material == .dark || material == .mediumLight || material == .ultraDark { state = .active } else { state = .followsWindowActiveState } - } } init(frame: NSRect, window: NSWindow, common com: Common) { - let f = NSMakeRect(0, frame.size.height - TitleBar.height, - frame.size.width, TitleBar.height + 1) + let f = NSRect(x: 0, y: frame.size.height - TitleBar.height, width: frame.size.width, height: TitleBar.height + 1) common = com super.init(frame: f) buttons.forEach { $0.isHidden = true } @@ -133,7 +127,7 @@ class TitleBar: NSVisualEffectView { let loc = common.view?.convert(window.mouseLocationOutsideOfEventStream, from: nil) buttons.forEach { $0.isHidden = false } - NSAnimationContext.runAnimationGroup({ (context) -> Void in + NSAnimationContext.runAnimationGroup({ (context) in context.duration = 0.20 systemBar?.animator().alphaValue = 1 if !window.isInFullscreen && !window.isAnimating { @@ -156,7 +150,7 @@ class TitleBar: NSVisualEffectView { isHidden = true return } - NSAnimationContext.runAnimationGroup({ (context) -> Void in + NSAnimationContext.runAnimationGroup({ (context) in context.duration = duration systemBar?.animator().alphaValue = 0 animator().alphaValue = 0 @@ -191,7 +185,8 @@ class TitleBar: NSVisualEffectView { return NSAppearance(named: .accessibilityHighContrastVibrantLight) case "8", "vibrantDarkHighContrast": return NSAppearance(named: .accessibilityHighContrastVibrantDark) - case "0", "auto": fallthrough + case "0", "auto": + return nil default: return nil } @@ -199,16 +194,16 @@ class TitleBar: NSVisualEffectView { func materialFrom(string: String) -> NSVisualEffectView.Material { switch string { - case "0", "titlebar": return .titlebar - case "1", "selection": return .selection - case "2,", "menu": return .menu - case "3", "popover": return .popover - case "4", "sidebar": return .sidebar - case "5,", "headerView": return .headerView - case "6", "sheet": return .sheet - case "7", "windowBackground": return .windowBackground - case "8", "hudWindow": return .hudWindow - case "9", "fullScreen": return .fullScreenUI + case "0", "titlebar": return .titlebar + case "1", "selection": return .selection + case "2", "menu": return .menu + case "3", "popover": return .popover + case "4", "sidebar": return .sidebar + case "5", "headerView": return .headerView + case "6", "sheet": return .sheet + case "7", "windowBackground": return .windowBackground + case "8", "hudWindow": return .hudWindow + case "9", "fullScreen": return .fullScreenUI case "10", "toolTip": return .toolTip case "11", "contentBackground": return .contentBackground case "12", "underWindowBackground": return .underWindowBackground diff --git a/video/out/mac/view.swift b/video/out/mac/view.swift index 047a5238e4..91ace66245 100644 --- a/video/out/mac/view.swift +++ b/video/out/mac/view.swift @@ -19,7 +19,7 @@ import Cocoa class View: NSView, CALayerDelegate { unowned var common: Common - var input: InputHelper? { get { return common.input } } + var input: InputHelper? { return common.input } var tracker: NSTrackingArea? var hasMouseDown: Bool = false @@ -27,7 +27,6 @@ class View: NSView, CALayerDelegate { override var isFlipped: Bool { return true } override var acceptsFirstResponder: Bool { return true } - init(frame: NSRect, common com: Common) { common = com super.init(frame: frame) diff --git a/video/out/mac/window.swift b/video/out/mac/window.swift index c5a711ed86..6ca5d2128d 100644 --- a/video/out/mac/window.swift +++ b/video/out/mac/window.swift @@ -19,8 +19,8 @@ import Cocoa class Window: NSWindow, NSWindowDelegate { weak var common: Common! = nil - var option: OptionHelper { get { return common.option } } - var input: InputHelper? { get { return common.input } } + var option: OptionHelper { return common.option } + var input: InputHelper? { return common.input } var targetScreen: NSScreen? var previousScreen: NSScreen? @@ -35,8 +35,8 @@ class Window: NSWindow, NSWindowDelegate { var isAnimating: Bool = false let animationLock: NSCondition = NSCondition() - var unfsContentFramePixel: NSRect { get { return convertToBacking(unfsContentFrame) } } - @objc var framePixel: NSRect { get { return convertToBacking(frame) } } + var unfsContentFramePixel: NSRect { return convertToBacking(unfsContentFrame) } + @objc var framePixel: NSRect { return convertToBacking(frame) } var keepAspect: Bool = true { didSet { @@ -83,14 +83,14 @@ class Window: NSWindow, NSWindowDelegate { absoluteWantedOrigin.x += wantedScreen.frame.origin.x absoluteWantedOrigin.y += wantedScreen.frame.origin.y - if !NSEqualPoints(absoluteWantedOrigin, self.frame.origin) { + if absoluteWantedOrigin != self.frame.origin { self.setFrameOrigin(absoluteWantedOrigin) } } common = com title = com.title - minSize = NSMakeSize(160, 90) + minSize = NSSize(width: 160, height: 90) collectionBehavior = .fullScreenPrimary ignoresMouseEvents = option.vo.cursor_passthrough delegate = self @@ -147,8 +147,7 @@ class Window: NSWindow, NSWindowDelegate { } else { if !isInFullscreen { setToFullScreen() - } - else { + } else { setToWindow() } } @@ -166,7 +165,7 @@ class Window: NSWindow, NSWindowDelegate { guard let tScreen = targetScreen else { return } common.view?.layerContentsPlacement = .scaleProportionallyToFit common.titleBar?.hide() - NSAnimationContext.runAnimationGroup({ (context) -> Void in + NSAnimationContext.runAnimationGroup({ (context) in context.duration = getFsAnimationDuration(duration - 0.05) window.animator().setFrame(tScreen.frame, display: true) }, completionHandler: nil) @@ -178,12 +177,12 @@ class Window: NSWindow, NSWindowDelegate { let intermediateFrame = aspectFit(rect: newFrame, in: currentScreen.frame) common.titleBar?.hide(0.0) - NSAnimationContext.runAnimationGroup({ (context) -> Void in + NSAnimationContext.runAnimationGroup({ (context) in context.duration = 0.0 common.view?.layerContentsPlacement = .scaleProportionallyToFill window.animator().setFrame(intermediateFrame, display: true) }, completionHandler: { - NSAnimationContext.runAnimationGroup({ (context) -> Void in + NSAnimationContext.runAnimationGroup({ (context) in context.duration = self.getFsAnimationDuration(duration - 0.05) self.styleMask.remove(.fullScreen) window.animator().setFrame(newFrame, display: true) @@ -221,9 +220,9 @@ class Window: NSWindow, NSWindowDelegate { common.view?.layerContentsPlacement = .scaleProportionallyToFit } - func endAnimation(_ newFrame: NSRect = NSZeroRect) { - if !NSEqualRects(newFrame, NSZeroRect) && isAnimating { - NSAnimationContext.runAnimationGroup({ (context) -> Void in + func endAnimation(_ newFrame: NSRect = NSRect.zero) { + if newFrame != NSRect.zero && isAnimating { + NSAnimationContext.runAnimationGroup({ (context) in context.duration = 0.01 self.animator().setFrame(newFrame, display: true) }, completionHandler: nil ) @@ -275,7 +274,7 @@ class Window: NSWindow, NSWindowDelegate { func waitForAnimation() { animationLock.lock() - while(isAnimating){ + while isAnimating { animationLock.wait() } animationLock.unlock() @@ -374,7 +373,7 @@ class Window: NSWindow, NSWindowDelegate { let cRect = contentRect(forFrameRect: rect) let dx = (cRect.size.width - sz.width) / 2 let dy = (cRect.size.height - sz.height) / 2 - return NSInsetRect(cRect, dx, dy) + return cRect.insetBy(dx: dx, dy: dy) } func aspectFit(rect r: NSRect, in rTarget: NSRect) -> NSRect { @@ -394,7 +393,7 @@ class Window: NSWindow, NSWindowDelegate { let targetFrame = tScreen.frame let targetVisibleFrame = tScreen.visibleFrame let unfsScreenFrame = screen.frame - let visibleWindow = NSIntersectionRect(unfsScreenFrame, newFrame) + let visibleWindow = unfsScreenFrame.intersection(newFrame) // calculate visible area of every side let left = newFrame.origin.x - unfsScreenFrame.origin.x @@ -457,8 +456,7 @@ class Window: NSWindow, NSWindowDelegate { override func constrainFrameRect(_ frameRect: NSRect, to tScreen: NSScreen?) -> NSRect { if (isAnimating && !isInFullscreen) || (!isAnimating && isInFullscreen || - level == NSWindow.Level(Int(CGWindowLevelForKey(.desktopWindow)))) - { + level == NSWindow.Level(Int(CGWindowLevelForKey(.desktopWindow)))) { return frameRect } @@ -471,32 +469,32 @@ class Window: NSWindow, NSWindowDelegate { let ncf: NSRect = contentRect(forFrameRect: nf) // screen bounds top and bottom - if NSMaxY(nf) > NSMaxY(vf) { - nf.origin.y = NSMaxY(vf) - NSHeight(nf) + if nf.maxY > vf.maxY { + nf.origin.y = vf.maxY - nf.height } - if NSMaxY(ncf) < NSMinY(vf) { - nf.origin.y = NSMinY(vf) + NSMinY(ncf) - NSMaxY(ncf) + if ncf.maxY < vf.minY { + nf.origin.y = vf.minY + ncf.minY - ncf.maxY } // screen bounds right and left - if NSMinX(nf) > NSMaxX(vf) { - nf.origin.x = NSMaxX(vf) - NSWidth(nf) + if nf.minX > vf.maxX { + nf.origin.x = vf.maxX - nf.width } - if NSMaxX(nf) < NSMinX(vf) { - nf.origin.x = NSMinX(vf) + if nf.maxX < vf.minX { + nf.origin.x = vf.minX } - if NSHeight(nf) < NSHeight(vf) && NSHeight(of) > NSHeight(vf) && !isInFullscreen { + if nf.height < vf.height && of.height > vf.height && !isInFullscreen { // If the window height is smaller than the visible frame, but it was // bigger previously recenter the smaller window vertically. This is // needed to counter the 'snap to top' behaviour. - nf.origin.y = (NSHeight(vf) - NSHeight(nf)) / 2 + nf.origin.y = (vf.height - nf.height) / 2 } return nf } @objc func setNormalWindowSize() { setWindowScale(1.0) } - @objc func setHalfWindowSize() { setWindowScale(0.5) } + @objc func setHalfWindowSize() { setWindowScale(0.5) } @objc func setDoubleWindowSize() { setWindowScale(2.0) } func setWindowScale(_ scale: Double) { @@ -540,9 +538,7 @@ class Window: NSWindow, NSWindowDelegate { common.windowDidEndLiveResize() option.setOption(maximized: isZoomed) - if let contentViewFrame = contentView?.frame, - !isAnimating && !isInFullscreen - { + if let contentViewFrame = contentView?.frame, !isAnimating && !isInFullscreen { unfsContentFrame = convertToScreen(contentViewFrame) } } diff --git a/video/out/mac_common.swift b/video/out/mac_common.swift index f29815d73d..3184e31c38 100644 --- a/video/out/mac_common.swift +++ b/video/out/mac_common.swift @@ -60,9 +60,7 @@ class MacCommon: Common { initWindowState() } - if !NSEqualSizes(window?.unfsContentFramePixel.size ?? NSZeroSize, wr.size) && - option.vo.auto_window_resize - { + if (window?.unfsContentFramePixel.size ?? NSSize.zero) != wr.size && option.vo.auto_window_resize { window?.updateSize(wr.size) } @@ -93,7 +91,7 @@ class MacCommon: Common { @objc func swapBuffer() { if option.mac.macos_render_timer > RENDER_TIMER_SYSTEM { swapLock.lock() - while(swapTime < 1) { + while swapTime < 1 { swapLock.wait() } swapTime = 0 @@ -111,11 +109,10 @@ class MacCommon: Common { } override func displayLinkCallback(_ displayLink: CVDisplayLink, - _ inNow: UnsafePointer<CVTimeStamp>, - _ inOutputTime: UnsafePointer<CVTimeStamp>, - _ flagsIn: CVOptionFlags, - _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn - { + _ inNow: UnsafePointer<CVTimeStamp>, + _ inOutputTime: UnsafePointer<CVTimeStamp>, + _ flagsIn: CVOptionFlags, + _ flagsOut: UnsafeMutablePointer<CVOptionFlags>) -> CVReturn { let signalSwap = { self.swapLock.lock() self.swapTime += 1 |