fix: affix playback controls to their default position
This commit is contained in:
@@ -1821,9 +1821,6 @@ private struct PlayerContent: View {
|
||||
@State private var youTubeURL = ""
|
||||
@FocusState private var youTubeInputFocused: Bool
|
||||
@State private var controlSize = CGSize(width: 440, height: 68)
|
||||
// Relative offsets preserve the dragged position across resize/fullscreen.
|
||||
@State private var controlOffset = CGSize.zero
|
||||
@State private var dragOrigin = CGSize.zero
|
||||
|
||||
private func compactTitleLabel(progress: String?, constrained: Bool) -> some View {
|
||||
HStack(spacing: 0) {
|
||||
@@ -2097,8 +2094,8 @@ private struct PlayerContent: View {
|
||||
}
|
||||
|
||||
private func controllerPosition(in size: CGSize) -> CGPoint {
|
||||
let x = size.width / 2 + controlOffset.width * size.width
|
||||
let y = size.height * 0.96 - controlSize.height / 2 + controlOffset.height * size.height
|
||||
let x = size.width / 2
|
||||
let y = size.height * 0.96 - controlSize.height / 2
|
||||
return CGPoint(
|
||||
x: min(max(x, controlSize.width / 2 + 12), size.width - controlSize.width / 2 - 12),
|
||||
y: min(max(y, 32 + controlSize.height / 2 + 12), size.height - controlSize.height / 2 - 12)
|
||||
@@ -2331,17 +2328,6 @@ private struct PlayerContent: View {
|
||||
.background {
|
||||
PlayerGlass()
|
||||
.clipShape(RoundedRectangle(cornerRadius: 12))
|
||||
.gesture(DragGesture(minimumDistance: 4).onChanged { value in
|
||||
model.setControlsDragging(true)
|
||||
controlOffset = CGSize(width: dragOrigin.width + value.translation.width / geometry.size.width,
|
||||
height: dragOrigin.height + value.translation.height / geometry.size.height)
|
||||
}.onEnded { _ in
|
||||
let position = controllerPosition(in: geometry.size)
|
||||
controlOffset = CGSize(width: (position.x - geometry.size.width / 2) / geometry.size.width,
|
||||
height: (position.y - (geometry.size.height * 0.96 - controlSize.height / 2)) / geometry.size.height)
|
||||
dragOrigin = controlOffset
|
||||
model.setControlsDragging(false)
|
||||
})
|
||||
}
|
||||
.scaleEffect(min(1, (geometry.size.width - 32) / 440))
|
||||
.frame(width: min(440, geometry.size.width - 32),
|
||||
|
||||
Reference in New Issue
Block a user