зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1541175 Part 2: Force RDM UI to be at 100% zoom. r=pbro,ochameau
Once RDM is up-and-running, the Zoom UI will stay synchronized with the zoom level of the RDM content pane. These changes ensure that the RDM tools are forced to 100%, and then does a fixup to get the Zoom UI to match the RDM content pane zoom level again. Differential Revision: https://phabricator.services.mozilla.com/D26045 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
cda550669d
Коммит
fcf2e160d9
|
@ -352,6 +352,25 @@ ResponsiveUI.prototype = {
|
||||||
debug("Wait until swap start");
|
debug("Wait until swap start");
|
||||||
await this.swap.start();
|
await this.swap.start();
|
||||||
|
|
||||||
|
// Set the ui toolWindow to fullZoom and textZoom of 100%. Directly change
|
||||||
|
// the zoom levels of the toolwindow docshell. That doesn't affect the zoom
|
||||||
|
// of the RDM content, but it does send events that confuse the Zoom UI.
|
||||||
|
// So before we adjust the zoom levels of the toolWindow, we first cache
|
||||||
|
// the reported zoom levels of the RDM content, because we'll have to
|
||||||
|
// re-apply them to re-sync the Zoom UI.
|
||||||
|
|
||||||
|
// Cache the values now and we'll re-apply them near the end of this function.
|
||||||
|
// This is important since other steps here can also cause the Zoom UI update
|
||||||
|
// event to be sent for other browsers, and this means that the changes from
|
||||||
|
// our Zoom UI update event would be overwritten. After this function, future
|
||||||
|
// changes to zoom levels will send Zoom UI update events in an order that
|
||||||
|
// keeps the Zoom UI synchronized with the RDM content zoom levels.
|
||||||
|
const fullZoom = this.tab.linkedBrowser.fullZoom;
|
||||||
|
const textZoom = this.tab.linkedBrowser.textZoom;
|
||||||
|
|
||||||
|
ui.toolWindow.docShell.contentViewer.fullZoom = 1;
|
||||||
|
ui.toolWindow.docShell.contentViewer.textZoom = 1;
|
||||||
|
|
||||||
this.tab.addEventListener("BeforeTabRemotenessChange", this);
|
this.tab.addEventListener("BeforeTabRemotenessChange", this);
|
||||||
|
|
||||||
// Notify the inner browser to start the frame script
|
// Notify the inner browser to start the frame script
|
||||||
|
@ -371,6 +390,11 @@ ResponsiveUI.prototype = {
|
||||||
new SettingOnboardingTooltip(ui.toolWindow.document);
|
new SettingOnboardingTooltip(ui.toolWindow.document);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Re-apply our cached zoom levels. Other Zoom UI update events have finished
|
||||||
|
// by now.
|
||||||
|
this.tab.linkedBrowser.fullZoom = fullZoom;
|
||||||
|
this.tab.linkedBrowser.textZoom = textZoom;
|
||||||
|
|
||||||
// Non-blocking message to tool UI to start any delayed init activities
|
// Non-blocking message to tool UI to start any delayed init activities
|
||||||
message.post(this.toolWindow, "post-init");
|
message.post(this.toolWindow, "post-init");
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче