@@ -12873,6 +12873,7 @@ var PDFViewerApplication = {
12873
12873
url: '',
12874
12874
baseUrl: '',
12875
12875
externalServices: DefaultExernalServices,
12876
+ _boundEvents: {},
12876
12877
initialize: function pdfViewInitialize(appConfig) {
12877
12878
var self = this;
12878
12879
var PDFJS = pdfjsLib.PDFJS;
@@ -13617,32 +13618,84 @@ var PDFViewerApplication = {
13617
13618
eventBus.on('findfromurlhash', webViewerFindFromUrlHash);
13618
13619
eventBus.on('fileinputchange', webViewerFileInputChange);
13619
13620
},
13620
- bindWindowEvents: function pdfViewBindWindowEvents() {
13621
- var eventBus = this.eventBus;
13622
- window.addEventListener('wheel', webViewerWheel);
13623
- window.addEventListener('click', webViewerClick);
13624
- window.addEventListener('keydown', webViewerKeyDown);
13625
- window.addEventListener('resize', function windowResize() {
13626
- eventBus.dispatch('resize');
13627
- });
13628
- window.addEventListener('hashchange', function windowHashChange() {
13629
- eventBus.dispatch('hashchange', { hash: document.location.hash.substring(1) });
13630
- });
13631
- window.addEventListener('beforeprint', function windowBeforePrint() {
13632
- eventBus.dispatch('beforeprint');
13633
- });
13634
- window.addEventListener('afterprint', function windowAfterPrint() {
13635
- eventBus.dispatch('afterprint');
13636
- });
13637
- window.addEventListener('change', function windowChange(evt) {
13638
- var files = evt.target.files;
13639
- if (!files || files.length === 0) {
13640
- return;
13641
- }
13642
- if (evt.target.id == PDFViewerApplication.appConfig.openFileInputName)
13643
- eventBus.dispatch('fileinputchange', { fileInput: evt.target });
13644
- });
13645
- }
13621
+ bindWindowEvents: function pdfViewBindWindowEvents() {
13622
+ var eventBus = this.eventBus,
13623
+ _boundEvents = this._boundEvents;
13624
+ _boundEvents.windowResize = function () {
13625
+ eventBus.dispatch('resize');
13626
+ };
13627
+ _boundEvents.windowHashChange = function () {
13628
+ eventBus.dispatch('hashchange', { hash: document.location.hash.substring(1) });
13629
+ };
13630
+ _boundEvents.windowBeforePrint = function () {
13631
+ eventBus.dispatch('beforeprint');
13632
+ };
13633
+ _boundEvents.windowAfterPrint = function () {
13634
+ eventBus.dispatch('afterprint');
13635
+ };
13636
+ _boundEvents.windowChange = function (evt) {
13637
+ var files = evt.target.files;
13638
+ if (!files || files.length === 0) {
13639
+ return;
13640
+ }
13641
+ if (evt.target.id == PDFViewerApplication.appConfig.openFileInputName)
13642
+ eventBus.dispatch('fileinputchange', {fileInput: evt.target});
13643
+ };
13644
+ window.addEventListener('wheel', webViewerWheel);
13645
+ window.addEventListener('click', webViewerClick);
13646
+ window.addEventListener('keydown', webViewerKeyDown);
13647
+ window.addEventListener('resize', _boundEvents.windowResize);
13648
+ window.addEventListener('hashchange', _boundEvents.windowHashChange);
13649
+ window.addEventListener('beforeprint', _boundEvents.windowBeforePrint);
13650
+ window.addEventListener('afterprint', _boundEvents.windowAfterPrint);
13651
+ window.addEventListener('change', _boundEvents.windowChange);
13652
+ },
13653
+ unbindEvents: function unbindEvents() {
13654
+ var eventBus = this.eventBus;
13655
+ eventBus.off('resize', webViewerResize);
13656
+ eventBus.off('hashchange', webViewerHashchange);
13657
+ eventBus.off('beforeprint', this.beforePrint.bind(this));
13658
+ eventBus.off('afterprint', this.afterPrint.bind(this));
13659
+ eventBus.off('pagerendered', webViewerPageRendered);
13660
+ eventBus.off('textlayerrendered', webViewerTextLayerRendered);
13661
+ eventBus.off('updateviewarea', webViewerUpdateViewarea);
13662
+ eventBus.off('pagechanging', webViewerPageChanging);
13663
+ eventBus.off('scalechanging', webViewerScaleChanging);
13664
+ eventBus.off('sidebarviewchanged', webViewerSidebarViewChanged);
13665
+ eventBus.off('pagemode', webViewerPageMode);
13666
+ eventBus.off('namedaction', webViewerNamedAction);
13667
+ eventBus.off('presentationmodechanged', webViewerPresentationModeChanged);
13668
+ eventBus.off('presentationmode', webViewerPresentationMode);
13669
+ eventBus.off('openfile', webViewerOpenFile);
13670
+ eventBus.off('print', webViewerPrint);
13671
+ eventBus.off('download', webViewerDownload);
13672
+ eventBus.off('firstpage', webViewerFirstPage);
13673
+ eventBus.off('lastpage', webViewerLastPage);
13674
+ eventBus.off('nextpage', webViewerNextPage);
13675
+ eventBus.off('previouspage', webViewerPreviousPage);
13676
+ eventBus.off('zoomin', webViewerZoomIn);
13677
+ eventBus.off('zoomout', webViewerZoomOut);
13678
+ eventBus.off('pagenumberchanged', webViewerPageNumberChanged);
13679
+ eventBus.off('scalechanged', webViewerScaleChanged);
13680
+ eventBus.off('rotatecw', webViewerRotateCw);
13681
+ eventBus.off('rotateccw', webViewerRotateCcw);
13682
+ eventBus.off('documentproperties', webViewerDocumentProperties);
13683
+ eventBus.off('find', webViewerFind);
13684
+ eventBus.off('findfromurlhash', webViewerFindFromUrlHash);
13685
+ eventBus.off('fileinputchange', webViewerFileInputChange);
13686
+ },
13687
+ unbindWindowEvents: function unbindWindowEvents() {
13688
+ var _boundEvents = this._boundEvents;
13689
+
13690
+ window.removeEventListener('wheel', webViewerWheel);
13691
+ window.removeEventListener('click', webViewerClick);
13692
+ window.removeEventListener('keydown', webViewerKeyDown);
13693
+ window.removeEventListener('resize', _boundEvents.windowResize);
13694
+ window.removeEventListener('hashchange', _boundEvents.windowHashChange);
13695
+ window.removeEventListener('beforeprint', _boundEvents.windowBeforePrint);
13696
+ window.removeEventListener('afterprint', _boundEvents.windowAfterPrint);
13697
+ window.removeEventListener('change', _boundEvents.windowChange);
13698
+ }
13646
13699
};
13647
13700
var validateFileURL;
13648
13701
var HOSTED_VIEWER_ORIGINS = [
0 commit comments