forked from mirrors/gecko-dev
Touchmove and wheel events are sent frequently enough that smooth scroll behavior prevents the expected pixel distance from being reached before the next event. Also replace aSmoothScroll parameters with aInstant to better reflect how this works: its purpose is to force instant scrolling, whereas omitting it falls back to "auto" (which may mean instant or smooth depending on different factors). The ensureElementIsVisible call from browser-customization.js can go away as customize mode doesn't add padding around the window anymore. Finally, remove the unused scrollPosition and scrollPaddingRect properties. MozReview-Commit-ID: 3Ac7g6zZ0hW --HG-- extra : rebase_source : e43d0bcab82c74e65d01a0fd79bfaec96952b35a
87 lines
2.7 KiB
JavaScript
87 lines
2.7 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
// This file is loaded into the browser window scope.
|
|
/* eslint-env mozilla/browser-window */
|
|
|
|
/**
|
|
* Customization handler prepares this browser window for entering and exiting
|
|
* customization mode by handling customizationstarting and customizationending
|
|
* events.
|
|
*/
|
|
var CustomizationHandler = {
|
|
handleEvent(aEvent) {
|
|
switch (aEvent.type) {
|
|
case "customizationstarting":
|
|
this._customizationStarting();
|
|
break;
|
|
case "customizationending":
|
|
this._customizationEnding(aEvent.detail);
|
|
break;
|
|
}
|
|
},
|
|
|
|
isCustomizing() {
|
|
return document.documentElement.hasAttribute("customizing");
|
|
},
|
|
|
|
_customizationStarting() {
|
|
// Disable the toolbar context menu items
|
|
let menubar = document.getElementById("main-menubar");
|
|
for (let childNode of menubar.childNodes)
|
|
childNode.setAttribute("disabled", true);
|
|
|
|
let cmd = document.getElementById("cmd_CustomizeToolbars");
|
|
cmd.setAttribute("disabled", "true");
|
|
|
|
UpdateUrlbarSearchSplitterState();
|
|
|
|
CombinedStopReload.uninit();
|
|
PlacesToolbarHelper.customizeStart();
|
|
DownloadsButton.customizeStart();
|
|
},
|
|
|
|
_customizationEnding(aDetails) {
|
|
// Update global UI elements that may have been added or removed
|
|
if (aDetails.changed) {
|
|
gURLBar = document.getElementById("urlbar");
|
|
|
|
gHomeButton.updateTooltip();
|
|
|
|
if (AppConstants.platform != "macosx")
|
|
updateEditUIVisibility();
|
|
|
|
// Hacky: update the PopupNotifications' object's reference to the iconBox,
|
|
// if it already exists, since it may have changed if the URL bar was
|
|
// added/removed.
|
|
if (!window.__lookupGetter__("PopupNotifications")) {
|
|
PopupNotifications.iconBox =
|
|
document.getElementById("notification-popup-box");
|
|
}
|
|
|
|
}
|
|
|
|
PlacesToolbarHelper.customizeDone();
|
|
DownloadsButton.customizeDone();
|
|
|
|
// The url bar splitter state is dependent on whether stop/reload
|
|
// and the location bar are combined, so we need this ordering
|
|
CombinedStopReload.init();
|
|
UpdateUrlbarSearchSplitterState();
|
|
|
|
// Update the urlbar
|
|
URLBarSetURI();
|
|
XULBrowserWindow.asyncUpdateUI();
|
|
|
|
// Re-enable parts of the UI we disabled during the dialog
|
|
let menubar = document.getElementById("main-menubar");
|
|
for (let childNode of menubar.childNodes)
|
|
childNode.setAttribute("disabled", false);
|
|
let cmd = document.getElementById("cmd_CustomizeToolbars");
|
|
cmd.removeAttribute("disabled");
|
|
|
|
gBrowser.selectedBrowser.focus();
|
|
}
|
|
}
|