mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
[Editor] Add a floating button close to the selected text to highlight it (bug 1867742)
For now keep this feature behind a pref in order to make some experiments before deciding to enable it.
This commit is contained in:
parent
eb160726ee
commit
b4267cd294
9 changed files with 233 additions and 21 deletions
|
@ -195,10 +195,12 @@
|
|||
}
|
||||
|
||||
.annotationEditorLayer
|
||||
:is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor) {
|
||||
:is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),
|
||||
.textLayer {
|
||||
.editToolbar {
|
||||
--editor-toolbar-delete-image: url(images/editor-toolbar-delete.svg);
|
||||
--editor-toolbar-bg-color: #f0f0f4;
|
||||
--editor-toolbar-highlight-image: url(images/toolbarButton-editorHighlight.svg);
|
||||
--editor-toolbar-fg-color: #2e2e56;
|
||||
--editor-toolbar-border-color: #8f8f9d;
|
||||
--editor-toolbar-hover-border-color: var(--editor-toolbar-border-color);
|
||||
|
@ -284,6 +286,25 @@
|
|||
margin-inline: 2px;
|
||||
}
|
||||
|
||||
.highlightButton {
|
||||
width: var(--editor-toolbar-height);
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
mask-image: var(--editor-toolbar-highlight-image);
|
||||
mask-repeat: no-repeat;
|
||||
mask-position: center;
|
||||
display: inline-block;
|
||||
background-color: var(--editor-toolbar-fg-color);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
background-color: var(--editor-toolbar-hover-fg-color);
|
||||
}
|
||||
}
|
||||
|
||||
.delete {
|
||||
width: var(--editor-toolbar-height);
|
||||
|
||||
|
|
|
@ -424,6 +424,9 @@ const PDFViewerApplication = {
|
|||
annotationMode: AppOptions.get("annotationMode"),
|
||||
annotationEditorMode,
|
||||
annotationEditorHighlightColors: AppOptions.get("highlightEditorColors"),
|
||||
enableHighlightFloatingButton: AppOptions.get(
|
||||
"enableHighlightFloatingButton"
|
||||
),
|
||||
imageResourcesPath: AppOptions.get("imageResourcesPath"),
|
||||
enablePrintAutoRotate: AppOptions.get("enablePrintAutoRotate"),
|
||||
maxCanvasPixels: AppOptions.get("maxCanvasPixels"),
|
||||
|
|
|
@ -143,6 +143,14 @@ const defaultOptions = {
|
|||
value: typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING"),
|
||||
kind: OptionKind.VIEWER + OptionKind.PREFERENCE,
|
||||
},
|
||||
enableHighlightFloatingButton: {
|
||||
// We'll probably want to make some experiments before enabling this
|
||||
// in Firefox release, but it has to be temporary.
|
||||
// TODO: remove it when unnecessary.
|
||||
/** @type {boolean} */
|
||||
value: typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING"),
|
||||
kind: OptionKind.VIEWER + OptionKind.PREFERENCE,
|
||||
},
|
||||
enableML: {
|
||||
/** @type {boolean} */
|
||||
value: false,
|
||||
|
|
|
@ -214,6 +214,8 @@ class PDFViewer {
|
|||
|
||||
#copyCallbackBound = null;
|
||||
|
||||
#enableHighlightFloatingButton = false;
|
||||
|
||||
#enablePermissions = false;
|
||||
|
||||
#mlManager = null;
|
||||
|
@ -282,6 +284,8 @@ class PDFViewer {
|
|||
options.annotationEditorMode ?? AnnotationEditorType.NONE;
|
||||
this.#annotationEditorHighlightColors =
|
||||
options.annotationEditorHighlightColors || null;
|
||||
this.#enableHighlightFloatingButton =
|
||||
options.enableHighlightFloatingButton === true;
|
||||
this.imageResourcesPath = options.imageResourcesPath || "";
|
||||
this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
|
||||
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
||||
|
@ -863,6 +867,7 @@ class PDFViewer {
|
|||
pdfDocument,
|
||||
this.pageColors,
|
||||
this.#annotationEditorHighlightColors,
|
||||
this.#enableHighlightFloatingButton,
|
||||
this.#mlManager
|
||||
);
|
||||
this.eventBus.dispatch("annotationeditoruimanager", {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue