[web/grab_to_pan.js] Inline the isLeftMouseReleased
helper function
Given the support information listed in the function itself, the [MDN compatibility data](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#browser_compatibility), and the [currently supported browsers](4bb9de4b00/gulpfile.js (L79-L87)
) in the PDF.js project we should be able to simplify the code by inlining the function instead.
This commit is contained in:
parent
7a428345db
commit
ed6af0f844
@ -142,7 +142,8 @@ GrabToPan.prototype = {
|
|||||||
*/
|
*/
|
||||||
_onmousemove: function GrabToPan__onmousemove(event) {
|
_onmousemove: function GrabToPan__onmousemove(event) {
|
||||||
this.element.removeEventListener("scroll", this._endPan, true);
|
this.element.removeEventListener("scroll", this._endPan, true);
|
||||||
if (isLeftMouseReleased(event)) {
|
if (!(event.buttons & 1)) {
|
||||||
|
// The left mouse button is released.
|
||||||
this._endPan();
|
this._endPan();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -177,38 +178,4 @@ GrabToPan.prototype = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the left mouse is not pressed.
|
|
||||||
* @param event {MouseEvent}
|
|
||||||
* @returns {boolean} True if the left mouse button is not pressed,
|
|
||||||
* False if unsure or if the left mouse button is pressed.
|
|
||||||
*/
|
|
||||||
function isLeftMouseReleased(event) {
|
|
||||||
if ("buttons" in event) {
|
|
||||||
// http://www.w3.org/TR/DOM-Level-3-Events/#events-MouseEvent-buttons
|
|
||||||
// Firefox 15+
|
|
||||||
// Chrome 43+
|
|
||||||
// Safari 11.1+
|
|
||||||
return !(event.buttons & 1);
|
|
||||||
}
|
|
||||||
if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("MOZCENTRAL")) {
|
|
||||||
// Browser sniffing because it's impossible to feature-detect
|
|
||||||
// whether event.which for onmousemove is reliable.
|
|
||||||
const chrome = window.chrome;
|
|
||||||
const isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app);
|
|
||||||
// ^ Chrome 15+ ^ Opera 15+
|
|
||||||
const isSafari6plus =
|
|
||||||
/Apple/.test(navigator.vendor) &&
|
|
||||||
/Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent);
|
|
||||||
|
|
||||||
if (isChrome15OrOpera15plus || isSafari6plus) {
|
|
||||||
// Chrome 14+
|
|
||||||
// Opera 15+
|
|
||||||
// Safari 6.0+
|
|
||||||
return event.which === 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
export { GrabToPan };
|
export { GrabToPan };
|
||||||
|
Loading…
Reference in New Issue
Block a user