diff --git a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts index 5e1619616..5230dfddc 100644 --- a/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/file-preview-screen.component.ts @@ -382,7 +382,7 @@ export class FilePreviewScreenComponent } } - @HostListener('window:keyup', ['$event']) + @HostListener('document:keyup', ['$event']) handleKeyEvent($event: KeyboardEvent) { if (this._router.url.indexOf('/file/') < 0) { return; @@ -396,6 +396,7 @@ export class FilePreviewScreenComponent this.fullScreen = false; this.closeFullScreen(); this.pdf.deactivateSearch(); + window.focus(); this._changeRef.markForCheck(); } diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts index c892bec91..a6113cfc9 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/pdf-viewer.service.ts @@ -102,6 +102,10 @@ export class PdfViewer { return page$.pipe(map(page => this.#adjustPage(page))); } + get searchActive() { + return this.instance.UI.isElementOpen('searchPanel'); + } + focusSearch() { const iframeWindow = this.#instance.UI.iframeWindow; const input = iframeWindow.document.getElementById('SearchPanel__input') as HTMLInputElement; @@ -260,8 +264,13 @@ export class PdfViewer { #listenForCommandF() { this.#instance.UI.hotkeys.on('command+f, ctrl+f', e => { e.preventDefault(); - this.activateSearch(); - this.focusSearch(); + if (!this.searchActive) { + this.activateSearch(); + this.focusSearch(); + } + if (this.documentViewer.getSelectedText()) { + this.#searchForSelectedText(); + } }); }