1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-19 22:58:07 +02:00

Merge pull request #18397 from calixteman/toolbar_density

Allow to change the toolbar height when changing the pref toolbar.density in Firefox (bug 1171799)
This commit is contained in:
calixteman 2024-07-05 21:50:10 +02:00 committed by GitHub
commit 9f001058c3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 3 deletions

View file

@ -393,7 +393,7 @@ const PDFViewerApplication = {
const { appConfig, externalServices, l10n } = this;
let eventBus;
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
eventBus = new FirefoxEventBus(
eventBus = this.preferences.eventBus = new FirefoxEventBus(
await this._allowedGlobalEventsPromise,
externalServices,
AppOptions.get("isInAutomation")
@ -569,7 +569,11 @@ const PDFViewerApplication = {
await this._nimbusDataPromise
);
} else {
this.toolbar = new Toolbar(appConfig.toolbar, eventBus);
this.toolbar = new Toolbar(
appConfig.toolbar,
eventBus,
AppOptions.get("toolbarDensity")
);
}
}

View file

@ -95,6 +95,11 @@ const defaultOptions = {
value: true,
kind: OptionKind.BROWSER,
},
toolbarDensity: {
/** @type {number} */
value: 0, // 0 = "normal", 1 = "compact", 2 = "touch"
kind: OptionKind.BROWSER,
},
annotationEditorMode: {
/** @type {number} */

View file

@ -37,6 +37,8 @@ class BasePreferences {
#initializedPromise = null;
static #eventToDispatch = new Set(["toolbarDensity"]);
constructor() {
if (this.constructor === BasePreferences) {
throw new Error("Cannot initialize BasePreferences.");
@ -73,6 +75,10 @@ class BasePreferences {
}
}
);
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
this.eventBus = null;
}
}
/**
@ -113,6 +119,10 @@ class BasePreferences {
return; // Invalid preference.
}
AppOptions.set(name, value);
if (BasePreferences.#eventToDispatch.has(name)) {
this.eventBus?.dispatch(name.toLowerCase(), { source: this, value });
}
}
/**

View file

@ -50,8 +50,13 @@ class Toolbar {
/**
* @param {ToolbarOptions} options
* @param {EventBus} eventBus
* @param {number} toolbarDensity - The toolbar density value.
* The possible values are:
* - 0 (default) - The regular toolbar size.
* - 1 (compact) - The small toolbar size.
* - 2 (touch) - The large toolbar size.
*/
constructor(options, eventBus) {
constructor(options, eventBus, toolbarDensity = 0) {
this.#opts = options;
this.eventBus = eventBus;
const buttons = [
@ -136,9 +141,14 @@ class Toolbar {
}
});
eventBus._on("toolbardensity", this.#updateToolbarDensity.bind(this));
this.#updateToolbarDensity({ value: toolbarDensity });
this.reset();
}
#updateToolbarDensity() {}
#setAnnotationEditorUIManager(uiManager, parentContainer) {
const colorPicker = new ColorPicker({ uiManager });
uiManager.setMainHighlightColorPicker(colorPicker);