vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js in webshims-rails-1.14.4 vs vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js in webshims-rails-1.14.5

- old
+ new

@@ -351,10 +351,11 @@ } if('_seekpause' in base){ delete base._seekpause; } wasPaused = null; + media.triggerHandler('updateprogress'); } }); durationChange = function(){ duration = media.prop('duration'); @@ -1314,15 +1315,16 @@ $.jme.defineProp('autoplayfs'); $.jme.registerPlugin('buffer-progress', { _create: function(control, media, base, options){ + var progressTimer; var indicator = $('<div class="buffer-progress-indicator" />').appendTo(control); var drawBufferProgress = function(){ var progress = media.jmeProp('progress'); + clearTimeout(progressTimer); - if(options.progress !== progress){ options.progress = progress; indicator.css('width', progress +'%'); } }; @@ -1330,11 +1332,18 @@ progress: drawBufferProgress, emptied: function(){ indicator.css('width', 0); options.progress = 0; }, - playing: drawBufferProgress + playing: drawBufferProgress, + 'seeked seeking updateprogress': function(e){ + clearTimeout(progressTimer); + if(e.type != 'seeking'){ + progressTimer = setTimeout(drawBufferProgress, 100); + } + } + }); drawBufferProgress(); } }); @@ -1416,11 +1425,11 @@ } if(dir){ var buttons = this.buttons.not(':disabled'); var activeButton = buttons.filter(':focus'); - activeButton = buttons[buttons.index(activeButton) + dir] || buttons.filter(dir > 0 ? ':first' : ':last'); - activeButton.trigger('focus'); + activeButton = (activeButton[0] && buttons[buttons.index(activeButton) + dir]) || buttons[dir > 0 ? 'first' : 'last'](); + $(activeButton).trigger('focus'); e.preventDefault(); } }, show: function(){ if(this.isVisible){return;}