diff --git a/addons/web/static/src/core/file_viewer/file_viewer.js b/addons/web/static/src/core/file_viewer/file_viewer.js index f92156331d0..899b2f95090 100644 --- a/addons/web/static/src/core/file_viewer/file_viewer.js +++ b/addons/web/static/src/core/file_viewer/file_viewer.js @@ -1,7 +1,7 @@ /* @odoo-module */ -import { Component, useExternalListener, useRef, useState } from "@odoo/owl"; -import { useService } from "@web/core/utils/hooks"; +import { Component, useRef, useState } from "@odoo/owl"; +import { useAutofocus, useService } from "@web/core/utils/hooks"; /** * @typedef {Object} File @@ -31,6 +31,7 @@ export class FileViewer extends Component { }; setup() { + useAutofocus(); this.imageRef = useRef("image"); this.zoomerRef = useRef("zoomer"); @@ -48,7 +49,6 @@ export class FileViewer extends Component { y: 0, }; - useExternalListener(document, "keydown", this.onKeydown); this.state = useState({ index: this.props.startIndex, file: this.props.files[this.props.startIndex], @@ -96,20 +96,22 @@ export class FileViewer extends Component { case "q": this.close(); break; - case "r": - this.rotate(); - break; - case "+": - this.zoomIn(); - break; - case "-": - this.zoomOut(); - break; - case "0": - this.resetZoom(); - break; - default: - return; + } + if (this.state.file.isImage) { + switch (ev.key) { + case "r": + this.rotate(); + break; + case "+": + this.zoomIn(); + break; + case "-": + this.zoomOut(); + break; + case "0": + this.resetZoom(); + break; + } } } diff --git a/addons/web/static/src/core/file_viewer/file_viewer.xml b/addons/web/static/src/core/file_viewer/file_viewer.xml index 62953ac80c2..00590ba022f 100644 --- a/addons/web/static/src/core/file_viewer/file_viewer.xml +++ b/addons/web/static/src/core/file_viewer/file_viewer.xml @@ -3,7 +3,7 @@
-
+