fix: separate Cast launch readiness, preserve volume intent and reuse seek inputs
This commit is contained in:
@@ -1469,7 +1469,7 @@ private struct PlaybackSlider: NSViewRepresentable {
|
||||
context.coordinator.parent = self
|
||||
slider.minValue = range.lowerBound
|
||||
slider.maxValue = range.upperBound
|
||||
slider.doubleValue = value
|
||||
slider.setModelValue(value)
|
||||
slider.isEnabled = enabled
|
||||
slider.editingChanged = onEditingChanged
|
||||
if let cell = slider.cell as? Cell, cell.bufferedRange != bufferedRange {
|
||||
@@ -1493,6 +1493,21 @@ private struct PlaybackSlider: NSViewRepresentable {
|
||||
final class Slider: NSSlider {
|
||||
var editingChanged: (Bool) -> Void = { _ in }
|
||||
private(set) var tracking = false
|
||||
func setModelValue(_ value: Double) { if !tracking { doubleValue = value } }
|
||||
#if PLAYER_CHECK
|
||||
static func feedbackCheck() -> Bool {
|
||||
let slider = Slider()
|
||||
slider.minValue = 0
|
||||
slider.maxValue = 1
|
||||
slider.doubleValue = 0.8
|
||||
slider.tracking = true
|
||||
slider.setModelValue(0.79)
|
||||
let heldUserValue = slider.doubleValue == 0.8
|
||||
slider.tracking = false
|
||||
slider.setModelValue(0.79)
|
||||
return heldUserValue && slider.doubleValue == 0.79
|
||||
}
|
||||
#endif
|
||||
override func mouseDown(with event: NSEvent) {
|
||||
guard isEnabled else { return }
|
||||
tracking = true
|
||||
@@ -1538,6 +1553,11 @@ private struct PlaybackSlider: NSViewRepresentable {
|
||||
}
|
||||
}
|
||||
|
||||
#if PLAYER_CHECK
|
||||
@MainActor
|
||||
func castVolumeSliderFeedbackCheck() -> Bool { PlaybackSlider.Slider.feedbackCheck() }
|
||||
#endif
|
||||
|
||||
@MainActor
|
||||
private struct VideoSurface: NSViewRepresentable {
|
||||
let view: NSView
|
||||
|
||||
Reference in New Issue
Block a user