From e06ab2a36a0870a3f0834cc95508a2fbbd4dafad Mon Sep 17 00:00:00 2001 From: Alexey Koshelev Date: Wed, 11 Feb 2026 13:04:11 +0300 Subject: [PATCH] [PDFE] For bug 79947 --- apps/pdfeditor/main/app/controller/InsTab.js | 19 +++++++++++++++++++ .../main/app/controller/Statusbar.js | 7 +++++++ 2 files changed, 26 insertions(+) diff --git a/apps/pdfeditor/main/app/controller/InsTab.js b/apps/pdfeditor/main/app/controller/InsTab.js index af236da28e..026bc453d9 100644 --- a/apps/pdfeditor/main/app/controller/InsTab.js +++ b/apps/pdfeditor/main/app/controller/InsTab.js @@ -386,6 +386,12 @@ define([ $(document.body).off('mouseup', this.binding.checkInsertHyperlinkAnnot); if (!this.api) return; + + const statusbarController = this.getApplication().getController('Statusbar'); + const stateBeforeOpenDlg = { + zoom: statusbarController.getZoom(), + scroll: this.api.getCurScroll() + }; var me = this, res; @@ -412,6 +418,19 @@ define([ handler: handlerDlg, slides: _arr }).on('close', function() { + //Restore zoom and scroll state + const currentScroll = me.api.getCurScroll(); + if(statusbarController.getZoom() != stateBeforeOpenDlg.zoom) { + me.api.zoom(stateBeforeOpenDlg.zoom); + } + if( + Math.abs(currentScroll.x - stateBeforeOpenDlg.scroll.x) > 1 || + Math.abs(currentScroll.y - stateBeforeOpenDlg.scroll.y) > 1 + ) { + me.api.scrollToXY(stateBeforeOpenDlg.scroll.x, stateBeforeOpenDlg.scroll.y); + } + + (res === 'view') && me.api.asc_selectComment(arrIds); (res!=='ok' && res!=='view') && me.api.asc_removeAnnots(arrIds); }); win.show(); diff --git a/apps/pdfeditor/main/app/controller/Statusbar.js b/apps/pdfeditor/main/app/controller/Statusbar.js index 75b16a525c..7c292d2a17 100644 --- a/apps/pdfeditor/main/app/controller/Statusbar.js +++ b/apps/pdfeditor/main/app/controller/Statusbar.js @@ -55,6 +55,8 @@ define([ initialize: function() { var me = this; + this.zoomValue = 100; + this.addListeners({ 'Statusbar': { 'zoom:value': function(value) { @@ -158,6 +160,10 @@ define([ Common.NotificationCenter.trigger('edit:complete', this.statusbar); }, + getZoom: function() { + return this.zoomValue; + }, + onGotoPage: function (next, btn, e) { this.api && this.api.goToPage(this.api.getCurrentPage() + (next ? 1 : -1)); }, @@ -172,6 +178,7 @@ define([ $('.statusbar #label-zoom').text(Common.Utils.String.format(this.zoomText, percent)); if(!this._isDocReady) return; var value = type == 2 ? -1 : (type == 1 ? -2 : percent); + this.zoomValue = percent; Common.localStorage.setItem('pdfe-last-zoom', value); Common.Utils.InternalSettings.set('pdfe-last-zoom', value); },