diff --git a/extensions/firefox/content/PdfStreamConverter.jsm b/extensions/firefox/content/PdfStreamConverter.jsm index 9e12f10f2..d21d4b2d9 100644 --- a/extensions/firefox/content/PdfStreamConverter.jsm +++ b/extensions/firefox/content/PdfStreamConverter.jsm @@ -423,6 +423,12 @@ ChromeActions.prototype = { } return true; }, + supportedMouseWheelZoomModifierKeys: function() { + return { + ctrlKey: getIntPref('mousewheel.with_control.action', 3) === 3, + metaKey: getIntPref('mousewheel.with_meta.action', 1) === 3, + }; + }, reportTelemetry: function (data) { var probeInfo = JSON.parse(data); switch (probeInfo.type) { @@ -827,7 +833,7 @@ RequestListener.prototype.receive = function(event) { var response; if (sync) { response = actions[action].call(this.actions, data); - event.detail.response = response; + event.detail.response = makeContentReadable(response, doc.defaultView); } else { if (!event.detail.responseExpected) { doc.documentElement.removeChild(message); diff --git a/web/viewer.js b/web/viewer.js index d14cc50b7..bbe1f6696 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -401,6 +401,18 @@ var PDFViewerApplication = { return PDFJS.shadow(this, 'loadingBar', bar); }, + get supportedMouseWheelZoomModifierKeys() { + var support = { + ctrlKey: true, + metaKey: true, + }; +//#if (FIREFOX || MOZCENTRAL) +// support = FirefoxCom.requestSync('supportedMouseWheelZoomModifierKeys'); +//#endif + + return PDFJS.shadow(this, 'supportedMouseWheelZoomModifierKeys', support); + }, + //#if (FIREFOX || MOZCENTRAL) initPassiveLoading: function pdfViewInitPassiveLoading() { function FirefoxComDataRangeTransport(length, initialData) { @@ -1898,6 +1910,11 @@ function handleMouseWheel(evt) { PDFViewerApplication.scrollPresentationMode(ticks * MOUSE_WHEEL_DELTA_FACTOR); } else if (evt.ctrlKey || evt.metaKey) { + var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; + if ((evt.ctrlKey && !support.ctrlKey) || + (evt.metaKey && !support.metaKey)) { + return; + } // Only zoom the pages, not the entire viewer. evt.preventDefault();