Commit e20e37c9 authored by dpapad's avatar dpapad Committed by Chromium LUCI CQ

PDF Viewer: Disable numpad zoom shortcuts in Presentation mode.

Bug: 1148478
Change-Id: Id3ac41a61fa0a16906b848511d337c4278da5c59
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2586839Reviewed-by: default avatarJohn Lee <johntlee@chromium.org>
Commit-Queue: dpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#836658}
parent f56eaabe
......@@ -497,7 +497,8 @@ export class PDFViewerElement extends PDFViewerBaseElement {
// <if expr="is_macosx">
hasModifier = e.metaKey;
// </if>
if (hasModifier && (e.key === '=' || e.key === '-')) {
// Handle '+' and '-' buttons (both in the numpad and elsewhere).
if (hasModifier && (e.key === '=' || e.key === '-' || e.key === '+')) {
e.preventDefault();
}
......
......@@ -6,7 +6,7 @@ import {eventToPromise} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehja
import {FittingType} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/constants.js';
import {PDFViewerElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer.js';
import {isMac} from 'chrome://resources/js/cr.m.js';
import {pressAndReleaseKeyOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
import {createWheelEvent} from './test_util.js';
......@@ -49,9 +49,9 @@ const tests = [
async function testRotateKeyboardShortcutsDisabled() {
await ensureFullscreen();
chrome.test.assertEq(0, viewer.viewport.getClockwiseRotations());
pressAndReleaseKeyOn(viewer, 0, 'ctrl', '[');
keyDownOn(viewer, 0, 'ctrl', '[');
chrome.test.assertEq(0, viewer.viewport.getClockwiseRotations());
pressAndReleaseKeyOn(viewer, 0, 'ctrl', ']');
keyDownOn(viewer, 0, 'ctrl', ']');
chrome.test.assertEq(0, viewer.viewport.getClockwiseRotations());
chrome.test.succeed();
},
......@@ -76,30 +76,30 @@ const tests = [
chrome.test.assertEq(0, viewer.viewport.getMostVisiblePage());
// Test arrow keys.
pressAndReleaseKeyOn(viewer, 0, '', 'ArrowDown');
keyDownOn(viewer, 0, '', 'ArrowDown');
chrome.test.assertEq(1, viewer.viewport.getMostVisiblePage());
pressAndReleaseKeyOn(viewer, 0, '', 'ArrowUp');
keyDownOn(viewer, 0, '', 'ArrowUp');
chrome.test.assertEq(0, viewer.viewport.getMostVisiblePage());
pressAndReleaseKeyOn(viewer, 0, '', 'ArrowRight');
keyDownOn(viewer, 0, '', 'ArrowRight');
chrome.test.assertEq(1, viewer.viewport.getMostVisiblePage());
pressAndReleaseKeyOn(viewer, 0, '', 'ArrowLeft');
keyDownOn(viewer, 0, '', 'ArrowLeft');
chrome.test.assertEq(0, viewer.viewport.getMostVisiblePage());
// Test Space key.
pressAndReleaseKeyOn(viewer, 0, '', ' ');
keyDownOn(viewer, 0, '', ' ');
chrome.test.assertEq(1, viewer.viewport.getMostVisiblePage());
pressAndReleaseKeyOn(viewer, 0, 'shift', ' ');
keyDownOn(viewer, 0, 'shift', ' ');
chrome.test.assertEq(0, viewer.viewport.getMostVisiblePage());
// Test PageUp/PageDown keys.
pressAndReleaseKeyOn(viewer, 0, '', 'PageDown');
keyDownOn(viewer, 0, '', 'PageDown');
chrome.test.assertEq(1, viewer.viewport.getMostVisiblePage());
pressAndReleaseKeyOn(viewer, 0, '', 'PageUp');
keyDownOn(viewer, 0, '', 'PageUp');
chrome.test.assertEq(0, viewer.viewport.getMostVisiblePage());
chrome.test.succeed();
......@@ -109,15 +109,23 @@ const tests = [
async function keydown(key) {
const whenKeydown = eventToPromise('keydown', viewer);
pressAndReleaseKeyOn(viewer, 0, isMac ? 'meta' : 'ctrl', key);
keyDownOn(viewer, 0, isMac ? 'meta' : 'ctrl', key);
return await whenKeydown;
}
// Test case where the '+' button (which co-resides with the '=' button) is
// pressed.
let e = await keydown('=');
chrome.test.assertTrue(e.defaultPrevented);
// Test case where the '-' button is pressed.
e = await keydown('-');
chrome.test.assertTrue(e.defaultPrevented);
// Test case where the '+' button (in the numpad) is pressed.
e = await keydown('+');
chrome.test.assertTrue(e.defaultPrevented);
chrome.test.succeed();
},
];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment