Merge pull request #7097 from prometheansacrifice/zoom-due-to-scroll-inertia

Prevents document zooming if still scrolling and meta keys pressed (Issue #7022)
This commit is contained in:
Brendan Dahl 2016-04-07 11:52:10 -07:00
commit f351eb23aa

View File

@ -1823,6 +1823,7 @@ window.addEventListener('pagechange', function pagechange(evt) {
} }
}, true); }, true);
var zoomDisabled = false, zoomDisabledTimeout;
function handleMouseWheel(evt) { function handleMouseWheel(evt) {
var MOUSE_WHEEL_DELTA_FACTOR = 40; var MOUSE_WHEEL_DELTA_FACTOR = 40;
var ticks = (evt.type === 'DOMMouseScroll') ? -evt.detail : var ticks = (evt.type === 'DOMMouseScroll') ? -evt.detail :
@ -1837,7 +1838,8 @@ function handleMouseWheel(evt) {
} else if (evt.ctrlKey || evt.metaKey) { } else if (evt.ctrlKey || evt.metaKey) {
var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys;
if ((evt.ctrlKey && !support.ctrlKey) || if ((evt.ctrlKey && !support.ctrlKey) ||
(evt.metaKey && !support.metaKey)) { (evt.metaKey && !support.metaKey) ||
zoomDisabled) {
return; return;
} }
// Only zoom the pages, not the entire viewer. // Only zoom the pages, not the entire viewer.
@ -1859,6 +1861,12 @@ function handleMouseWheel(evt) {
pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor;
pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; pdfViewer.container.scrollTop += dy * scaleCorrectionFactor;
} }
} else {
zoomDisabled = true;
clearTimeout(zoomDisabledTimeout);
zoomDisabledTimeout = setTimeout(function () {
zoomDisabled = false;
}, 1000);
} }
} }