diff --git a/ui/widgets/playercontrols.go b/ui/widgets/playercontrols.go index adc07b1..82425fb 100644 --- a/ui/widgets/playercontrols.go +++ b/ui/widgets/playercontrols.go @@ -121,6 +121,7 @@ func NewPlayerControls(useWaveformSeekbar bool) *PlayerControls { pc.slider = NewTrackPosSlider() pc.slider.Disable() pc.waveform = NewWaveformSeekbar() + pc.waveform.Disable() if useWaveformSeekbar { pc.slider.Hidden = true } else { @@ -206,8 +207,10 @@ func (pc *PlayerControls) UpdatePlayTime(curTime, totalTime float64) { } if totalTime > 0 { pc.slider.Enable() + pc.waveform.Enable() } else { pc.slider.Disable() + pc.waveform.Disable() } if !pc.slider.IsDragging() { ct := util.SecondsToMMSS(curTime) diff --git a/ui/widgets/waveformseekbar.go b/ui/widgets/waveformseekbar.go index 8e5dc29..ad92846 100644 --- a/ui/widgets/waveformseekbar.go +++ b/ui/widgets/waveformseekbar.go @@ -16,7 +16,7 @@ import ( ) type WaveformSeekbar struct { - widget.BaseWidget + widget.DisableableWidget OnSeeked func(float64) @@ -59,6 +59,9 @@ func (w *WaveformSeekbar) Refresh() { var _ desktop.Hoverable = (*WaveformSeekbar)(nil) func (w *WaveformSeekbar) MouseIn(e *desktop.MouseEvent) { + if w.Disabled() { + return + } prm, fg := w.getThemeColors() w.recolorCursor(prm, fg, e.Position.X) w.cursor.Resize(fyne.NewSize(1, w.Size().Height-4)) @@ -67,6 +70,9 @@ func (w *WaveformSeekbar) MouseIn(e *desktop.MouseEvent) { } func (w *WaveformSeekbar) MouseMoved(e *desktop.MouseEvent) { + if w.Disabled() { + return + } prm, fg := w.getThemeColors() w.recolorCursor(prm, fg, e.Position.X) w.cursor.Move(fyne.NewPos(e.Position.X, 2)) @@ -79,7 +85,7 @@ func (w *WaveformSeekbar) MouseOut() { var _ fyne.Tappable = (*WaveformSeekbar)(nil) func (w *WaveformSeekbar) Tapped(e *fyne.PointEvent) { - if w.OnSeeked != nil { + if !w.Disabled() && w.OnSeeked != nil { w.OnSeeked(float64(e.Position.X / w.Size().Width)) } }