Add a |textlayerrendered| event
This commit is contained in:
parent
34203e5367
commit
3f061cef86
@ -46,6 +46,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
|
|||||||
this.renderingDone = false;
|
this.renderingDone = false;
|
||||||
this.divContentDone = false;
|
this.divContentDone = false;
|
||||||
this.pageIdx = options.pageIndex;
|
this.pageIdx = options.pageIndex;
|
||||||
|
this.pageNumber = this.pageIdx + 1;
|
||||||
this.matches = [];
|
this.matches = [];
|
||||||
this.viewport = options.viewport;
|
this.viewport = options.viewport;
|
||||||
this.textDivs = [];
|
this.textDivs = [];
|
||||||
@ -53,6 +54,16 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TextLayerBuilder.prototype = {
|
TextLayerBuilder.prototype = {
|
||||||
|
_finishRendering: function TextLayerBuilder_finishRendering() {
|
||||||
|
this.renderingDone = true;
|
||||||
|
|
||||||
|
var event = document.createEvent('CustomEvent');
|
||||||
|
event.initCustomEvent('textlayerrendered', true, true, {
|
||||||
|
pageNumber: this.pageNumber
|
||||||
|
});
|
||||||
|
this.textLayerDiv.dispatchEvent(event);
|
||||||
|
},
|
||||||
|
|
||||||
renderLayer: function TextLayerBuilder_renderLayer() {
|
renderLayer: function TextLayerBuilder_renderLayer() {
|
||||||
var textLayerFrag = document.createDocumentFragment();
|
var textLayerFrag = document.createDocumentFragment();
|
||||||
var textDivs = this.textDivs;
|
var textDivs = this.textDivs;
|
||||||
@ -63,7 +74,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
|
|||||||
// No point in rendering many divs as it would make the browser
|
// No point in rendering many divs as it would make the browser
|
||||||
// unusable even after the divs are rendered.
|
// unusable even after the divs are rendered.
|
||||||
if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
|
if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
|
||||||
this.renderingDone = true;
|
this._finishRendering();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +118,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.textLayerDiv.appendChild(textLayerFrag);
|
this.textLayerDiv.appendChild(textLayerFrag);
|
||||||
this.renderingDone = true;
|
this._finishRendering();
|
||||||
this.updateMatches();
|
this.updateMatches();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1741,18 +1741,6 @@ document.addEventListener('pagerendered', function (e) {
|
|||||||
Stats.add(pageNumber, pageView.stats);
|
Stats.add(pageNumber, pageView.stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
//#if (FIREFOX || MOZCENTRAL)
|
|
||||||
//if (pageView.textLayer && pageView.textLayer.textDivs &&
|
|
||||||
// pageView.textLayer.textDivs.length > 0 &&
|
|
||||||
// !PDFViewerApplication.supportsDocumentColors) {
|
|
||||||
// console.error(mozL10n.get('document_colors_disabled', null,
|
|
||||||
// 'PDF documents are not allowed to use their own colors: ' +
|
|
||||||
// '\'Allow pages to choose their own colors\' ' +
|
|
||||||
// 'is deactivated in the browser.'));
|
|
||||||
// PDFViewerApplication.fallback();
|
|
||||||
//}
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
if (pageView.error) {
|
if (pageView.error) {
|
||||||
PDFViewerApplication.error(mozL10n.get('rendering_error', null,
|
PDFViewerApplication.error(mozL10n.get('rendering_error', null,
|
||||||
'An error occurred while rendering the page.'), pageView.error);
|
'An error occurred while rendering the page.'), pageView.error);
|
||||||
@ -1779,6 +1767,23 @@ document.addEventListener('pagerendered', function (e) {
|
|||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
document.addEventListener('textlayerrendered', function (e) {
|
||||||
|
var pageIndex = e.detail.pageNumber - 1;
|
||||||
|
var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex);
|
||||||
|
|
||||||
|
//#if (FIREFOX || MOZCENTRAL)
|
||||||
|
//if (pageView.textLayer && pageView.textLayer.textDivs &&
|
||||||
|
// pageView.textLayer.textDivs.length > 0 &&
|
||||||
|
// !PDFViewerApplication.supportsDocumentColors) {
|
||||||
|
// console.error(mozL10n.get('document_colors_disabled', null,
|
||||||
|
// 'PDF documents are not allowed to use their own colors: ' +
|
||||||
|
// '\'Allow pages to choose their own colors\' ' +
|
||||||
|
// 'is deactivated in the browser.'));
|
||||||
|
// PDFViewerApplication.fallback();
|
||||||
|
//}
|
||||||
|
//#endif
|
||||||
|
}, true);
|
||||||
|
|
||||||
window.addEventListener('presentationmodechanged', function (e) {
|
window.addEventListener('presentationmodechanged', function (e) {
|
||||||
var active = e.detail.active;
|
var active = e.detail.active;
|
||||||
var switchInProgress = e.detail.switchInProgress;
|
var switchInProgress = e.detail.switchInProgress;
|
||||||
|
Loading…
Reference in New Issue
Block a user