mirror of
https://github.com/videojs/video.js.git
synced 2025-01-17 10:46:00 +02:00
Merge branch 'mousespam' of github.com:download13/video.js into download13-mousespam
This commit is contained in:
commit
8c9a4cc434
@ -6,7 +6,8 @@ CHANGELOG
|
||||
* The UI now resets after a source change ([view](https://github.com/videojs/video.js/pull/1124))
|
||||
* Now assuming smart CSS defaults for sliders to prevent reflow on player init ([view](https://github.com/videojs/video.js/pull/1122))
|
||||
* Fixed the title element placement in menus [[view](https://github.com/videojs/video.js/pull/1114)]
|
||||
* Fixed title support for menu buttons ([view](https
|
||||
* Fixed title support for menu buttons ([view](https://github.com/videojs/video.js/pull/1128))
|
||||
* Fixed extra mousemove events on Windows caused by certain apps, not users [[view](https://github.com/videojs/video.js/pull/1068)]
|
||||
|
||||
--------------------
|
||||
|
||||
|
@ -1314,13 +1314,23 @@ vjs.Player.prototype.userActive = function(bool){
|
||||
};
|
||||
|
||||
vjs.Player.prototype.listenForUserActivity = function(){
|
||||
var onMouseActivity, onMouseDown, mouseInProgress, onMouseUp,
|
||||
activityCheck, inactivityTimeout;
|
||||
var onActivity, onMouseMove, onMouseDown, mouseInProgress, onMouseUp,
|
||||
activityCheck, inactivityTimeout, lastMoveX, lastMoveY;
|
||||
|
||||
onMouseActivity = vjs.bind(this, this.reportUserActivity);
|
||||
onActivity = vjs.bind(this, this.reportUserActivity);
|
||||
|
||||
onMouseMove = function(e) {
|
||||
// #1068 - Prevent mousemove spamming
|
||||
// Chrome Bug: https://code.google.com/p/chromium/issues/detail?id=366970
|
||||
if(e.screenX != lastMoveX || e.screenY != lastMoveY) {
|
||||
lastMoveX = e.screenX;
|
||||
lastMoveY = e.screenY;
|
||||
onActivity();
|
||||
}
|
||||
};
|
||||
|
||||
onMouseDown = function() {
|
||||
onMouseActivity();
|
||||
onActivity();
|
||||
// For as long as the they are touching the device or have their mouse down,
|
||||
// we consider them active even if they're not moving their finger or mouse.
|
||||
// So we want to continue to update that they are active
|
||||
@ -1328,24 +1338,24 @@ vjs.Player.prototype.listenForUserActivity = function(){
|
||||
// Setting userActivity=true now and setting the interval to the same time
|
||||
// as the activityCheck interval (250) should ensure we never miss the
|
||||
// next activityCheck
|
||||
mouseInProgress = setInterval(onMouseActivity, 250);
|
||||
mouseInProgress = setInterval(onActivity, 250);
|
||||
};
|
||||
|
||||
onMouseUp = function(event) {
|
||||
onMouseActivity();
|
||||
onActivity();
|
||||
// Stop the interval that maintains activity if the mouse/touch is down
|
||||
clearInterval(mouseInProgress);
|
||||
};
|
||||
|
||||
// Any mouse movement will be considered user activity
|
||||
this.on('mousedown', onMouseDown);
|
||||
this.on('mousemove', onMouseActivity);
|
||||
this.on('mousemove', onMouseMove);
|
||||
this.on('mouseup', onMouseUp);
|
||||
|
||||
// Listen for keyboard navigation
|
||||
// Shouldn't need to use inProgress interval because of key repeat
|
||||
this.on('keydown', onMouseActivity);
|
||||
this.on('keyup', onMouseActivity);
|
||||
this.on('keydown', onActivity);
|
||||
this.on('keyup', onActivity);
|
||||
|
||||
// Run an interval every 250 milliseconds instead of stuffing everything into
|
||||
// the mousemove/touchmove function itself, to prevent performance degradation.
|
||||
|
Loading…
Reference in New Issue
Block a user