Browse Source

Add a `enhanceTextSelection` preference to the viewer

Jonas Jenwald 9 years ago
parent
commit
15e45d772f
  1. 4
      extensions/chromium/preferences_schema.json
  2. 7
      web/app.js
  3. 3
      web/default_preferences.json
  4. 4
      web/text_layer_builder.js

4
extensions/chromium/preferences_schema.json

@ -94,6 +94,10 @@
"type": "boolean", "type": "boolean",
"description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.", "description": "Whether to prevent the extension from reporting the extension and browser version to the extension developers.",
"default": false "default": false
},
"enhanceTextSelection": {
"type": "boolean",
"default": false
} }
} }
} }

7
web/app.js

@ -101,7 +101,6 @@ var SCALE_SELECT_CONTAINER_PADDING = 8;
var SCALE_SELECT_PADDING = 22; var SCALE_SELECT_PADDING = 22;
var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
var ENHANCE_TEXT_SELECTION = false;
function configure(PDFJS) { function configure(PDFJS) {
PDFJS.imageResourcesPath = './images/'; PDFJS.imageResourcesPath = './images/';
@ -177,6 +176,7 @@ var PDFViewerApplication = {
preferencePdfBugEnabled: false, preferencePdfBugEnabled: false,
preferenceShowPreviousViewOnLoad: true, preferenceShowPreviousViewOnLoad: true,
preferenceDefaultZoomValue: '', preferenceDefaultZoomValue: '',
preferenceEnhanceTextSelection: false,
isViewerEmbedded: (window.parent !== window), isViewerEmbedded: (window.parent !== window),
url: '', url: '',
externalServices: DefaultExernalServices, externalServices: DefaultExernalServices,
@ -206,6 +206,9 @@ var PDFViewerApplication = {
Preferences.get('defaultZoomValue').then(function resolved(value) { Preferences.get('defaultZoomValue').then(function resolved(value) {
self.preferenceDefaultZoomValue = value; self.preferenceDefaultZoomValue = value;
}), }),
Preferences.get('enhanceTextSelection').then(function resolved(value) {
self.preferenceEnhanceTextSelection = value;
}),
Preferences.get('disableTextLayer').then(function resolved(value) { Preferences.get('disableTextLayer').then(function resolved(value) {
if (PDFJS.disableTextLayer === true) { if (PDFJS.disableTextLayer === true) {
return; return;
@ -274,7 +277,7 @@ var PDFViewerApplication = {
renderingQueue: pdfRenderingQueue, renderingQueue: pdfRenderingQueue,
linkService: pdfLinkService, linkService: pdfLinkService,
downloadManager: downloadManager, downloadManager: downloadManager,
enhanceTextSelection: ENHANCE_TEXT_SELECTION, enhanceTextSelection: this.preferenceEnhanceTextSelection,
}); });
pdfRenderingQueue.setViewer(this.pdfViewer); pdfRenderingQueue.setViewer(this.pdfViewer);
pdfLinkService.setViewer(this.pdfViewer); pdfLinkService.setViewer(this.pdfViewer);

3
web/default_preferences.json

@ -11,5 +11,6 @@
"disableFontFace": false, "disableFontFace": false,
"disableTextLayer": false, "disableTextLayer": false,
"useOnlyCssZoom": false, "useOnlyCssZoom": false,
"externalLinkTarget": 0 "externalLinkTarget": 0,
"enhanceTextSelection": false
} }

4
web/text_layer_builder.js

@ -36,7 +36,7 @@
* @property {PageViewport} viewport - The viewport of the text layer. * @property {PageViewport} viewport - The viewport of the text layer.
* @property {PDFFindController} findController * @property {PDFFindController} findController
* @property {boolean} enhanceTextSelection - Option to turn on improved * @property {boolean} enhanceTextSelection - Option to turn on improved
* text selection. * text selection. The default value is `false`.
*/ */
/** /**
@ -59,7 +59,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
this.textDivs = []; this.textDivs = [];
this.findController = options.findController || null; this.findController = options.findController || null;
this.textLayerRenderTask = null; this.textLayerRenderTask = null;
this.enhanceTextSelection = options.enhanceTextSelection; this.enhanceTextSelection = options.enhanceTextSelection || false;
this._bindMouse(); this._bindMouse();
} }

Loading…
Cancel
Save