@@ -136,6 +136,7 @@ class SeekDialog(kodigui.BaseDialog):
136
136
137
137
HIDE_DELAY = 4 # This uses the Cron tick so is +/- 1 second accurate
138
138
OSD_HIDE_ANIMATION_DURATION = 0.2
139
+ OSD_HIDE_ACTION_THRESHOLD = 0.5
139
140
SKIP_STEPS = {"negative" : [- 10000 ], "positive" : [30000 ]}
140
141
141
142
def __init__ (self , * args , ** kwargs ):
@@ -634,6 +635,11 @@ def onAction(self, action):
634
635
if controlID == self .MAIN_BUTTON_ID :
635
636
# we're seeking from the timeline with the OSD open - do an actual timeline seek
636
637
638
+ # ignore seek actions for a split second when the OSD is hiding or was hiding
639
+ if (action .getId () in KEY_MOVE_SET and self ._osdHideAnimationTimeout and
640
+ self ._osdHideAnimationTimeout + self .OSD_HIDE_ACTION_THRESHOLD >= time .time ()):
641
+ return
642
+
637
643
if action in (xbmcgui .ACTION_MOVE_RIGHT , xbmcgui .ACTION_STEP_FORWARD ):
638
644
self .setProperty ('show.chapters' , '' )
639
645
if self .useDynamicStepsForTimeline :
@@ -680,6 +686,11 @@ def onAction(self, action):
680
686
self .resetSeeking ()
681
687
682
688
elif controlID == self .NO_OSD_BUTTON_ID or passThroughMain :
689
+ # ignore seek actions for a split second when the OSD is hiding or was hiding
690
+ if (action .getId () in KEY_MOVE_SET and self ._osdHideAnimationTimeout and
691
+ self ._osdHideAnimationTimeout + self .OSD_HIDE_ACTION_THRESHOLD >= time .time ()):
692
+ return
693
+
683
694
if action in (xbmcgui .ACTION_MOVE_RIGHT , xbmcgui .ACTION_MOVE_LEFT ):
684
695
# we're seeking from the timeline, with the OSD closed; act as we're skipping
685
696
if not self ._seeking :
0 commit comments