Skip to content
This repository has been archived by the owner on Sep 16, 2023. It is now read-only.

Commit

Permalink
Fix iina#3364.
Browse files Browse the repository at this point in the history
  • Loading branch information
xjbeta authored and CarterLi committed Apr 15, 2022
1 parent 7f07e89 commit e8cb66c
Showing 1 changed file with 39 additions and 3 deletions.
42 changes: 39 additions & 3 deletions iina/MainWindowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -734,9 +734,14 @@ class MainWindowController: PlayerWindowController {
oscFloatingTopView.addView(fragVolumeView, in: .leading)
oscFloatingTopView.addView(fragToolbarView, in: .trailing)
oscFloatingTopView.addView(fragControlView, in: .center)
oscFloatingTopView.setVisibilityPriority(.detachOnlyIfNecessary, for: fragVolumeView)
oscFloatingTopView.setVisibilityPriority(.detachOnlyIfNecessary, for: fragToolbarView)
oscFloatingTopView.setClippingResistancePriority(.defaultLow, for: .horizontal)

if #available(macOS 11.0, *) {
// update oscFloatingTopView detach
} else {
oscFloatingTopView.setVisibilityPriority(.detachOnlyIfNecessary, for: fragVolumeView)
oscFloatingTopView.setVisibilityPriority(.detachOnlyIfNecessary, for: fragToolbarView)
oscFloatingTopView.setClippingResistancePriority(.defaultLow, for: .horizontal)
}
oscFloatingBottomView.addSubview(fragSliderView)
Utility.quickConstraints(["H:|[v]|", "V:|[v]|"], ["v": fragSliderView])
Utility.quickConstraints(["H:|-(>=0)-[v]-(>=0)-|"], ["v": fragControlView])
Expand Down Expand Up @@ -1482,6 +1487,37 @@ class MainWindowController: PlayerWindowController {
controlBarFloating.xConstraint.constant = xPos
controlBarFloating.yConstraint.constant = yPos
}

// update oscFloatingTopView detach
if #available(macOS 11.0, *), oscPosition == .floating {

guard let maxWidth = [fragVolumeView, fragToolbarView].compactMap({ $0?.frame.width }).max() else {
return
}

// window - 10 - controlBarFloating
// controlBarFloating - 12 - oscFloatingTopView
let margin: CGFloat = (10 + 12) * 2
let hide = (window.frame.width
- fragControlView.frame.width
- maxWidth*2
- margin) < 0

let views = oscFloatingTopView.views
if hide {
if views.contains(fragVolumeView)
&& views.contains(fragToolbarView) {
oscFloatingTopView.removeView(fragVolumeView)
oscFloatingTopView.removeView(fragToolbarView)
}
} else {
if !views.contains(fragVolumeView)
&& !views.contains(fragToolbarView) {
oscFloatingTopView.addView(fragVolumeView, in: .leading)
oscFloatingTopView.addView(fragToolbarView, in: .trailing)
}
}
}
}

// resize framebuffer in videoView after resizing.
Expand Down

0 comments on commit e8cb66c

Please sign in to comment.