Bug 864355 - Extend customization target across (almost) the entire nav-bar. r=Unfocused,jaws

This commit is contained in:
Mike Conley 2013-04-30 16:25:08 +12:00
parent d4b5a0d71a
commit b74d7af666
8 changed files with 177 additions and 161 deletions

View File

@ -4061,8 +4061,7 @@ var CombinedStopReload = {
var stop = document.getElementById("stop-button");
if (urlbar) {
if (urlbar.parentNode.getAttribute("mode") != "icons" ||
!reload || urlbar.nextSibling != reload ||
if (!reload || urlbar.nextSibling != reload ||
!stop || reload.nextSibling != stop)
urlbar.removeAttribute("combined");
else {

View File

@ -532,6 +532,7 @@
customizationtarget="nav-bar-customizationtarget"
context="toolbar-context-menu">
<hbox id="nav-bar-customizationtarget" class="customization-target" flex="0">
<toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
context="backForwardMenu" removable="true"
forwarddisabled="true"
@ -658,8 +659,6 @@
command="Browser:Stop"
tooltiptext="&stopButton.tooltip;"/>
<hbox id="nav-bar-customizationtarget" class="customization-target" flex="100"/>
<toolbarbutton id="webrtc-status-button"
class="toolbarbutton-1 chromeclass-toolbar-additional"
type="menu"
@ -671,6 +670,7 @@
onpopuphiding="WebrtcIndicator.clearPopup(this);"
oncommand="WebrtcIndicator.menuCommand(event.target);"/>
</toolbarbutton>
</hbox>
<toolbaritem id="PanelUI-button"
class="chromeclass-toolbar-additional"

View File

@ -98,6 +98,17 @@
return this._toolbox;
]]></getter>
</property>
<property name="currentSet" readonly="true">
<getter><![CDATA[
if (!this._customizationTarget)
return "";
return [node.id for (node of this._customizationTarget.children)].join(',');
]]></getter>
</property>
</implementation>
</binding>

View File

@ -224,11 +224,16 @@ let gFuturePlacements = new Map();
*/
let gDefaultPlacements = new Map([
["nav-bar", [
"unified-back-forward-button",
"urlbar-container",
"reload-button",
"stop-button",
"search-container",
"webrtc-status-button",
"bookmarks-menu-button-container",
"downloads-button",
"home-button",
"social-toolbar-button",
"PanelUI-button",
"share-page"
]],
["PanelUI-contents", [
@ -371,6 +376,7 @@ let CustomizableUIInternal = {
let placements = gPlacements.get(area);
this.buildArea(area, placements, aToolbar);
aToolbar.setAttribute("currentset", placements.join(","));
// We register this window to have its customization data cleaned up when
// unloading.
@ -413,14 +419,18 @@ let CustomizableUIInternal = {
let limit = currentNode.previousSibling;
let node = container.lastChild;
while (node != limit) {
// XXXunf Deprecating the old "removable" attribute, is this right?
// XXXmconley I think we need to hear from UX about this.
// Nodes opt-in to removability. If they're removable, and we haven't
// seen them in the placements array, then we toss them into the palette
// if one exists. If no palette exists, we just remove the node. If the
// node is not removable, we leave it where it is.
if (node.getAttribute("removable") == "true") {
if (palette) {
palette.appendChild(node);
} else {
container.removeChild(node);
}
node = container.lastChild;
}
node = node.previousSibling;
}
}
},

View File

@ -375,19 +375,15 @@ CustomizeMode.prototype = {
// also want to (try) persisting with currentset as well to make it
// less painful to switch to older builds.
persistCurrentSets: function() {
//XXXjaws The toolbar bindings that are included in this changeset (/browser/base/content/toolbar.xml)
// don't implement currentSet. They probably need to inherit the toolkit bindings.
return;
let document = this.document;
let toolbar = document.getElementById("nav-bar");
let toolbars = document.querySelectorAll("toolbar");
for (let toolbar of toolbars) {
// Calculate currentset and store it in the attribute.
let currentSet = toolbar.currentSet;
toolbar.setAttribute("currentset", currentSet);
toolbar.setAttribute("currentset", toolbar.currentSet);
// Persist the currentset attribute directly on hardcoded toolbars.
document.persist(toolbar.id, "currentset");
}
},
reset: function() {

View File

@ -15,8 +15,8 @@
%define fgTabTexture linear-gradient(transparent 0px, transparent 1px, hsla(0,0%,100%,0.35) 1px, hsla(0,0%,100%,0.35) 2px, hsla(0,0%,100%,0.65) 2px, hsla(0,0%,100%,0.65) 3px, @toolbarHighlight@)
%define fgTabBackgroundMiddle @fgTabTexture@, linear-gradient(transparent 0px, transparent 2px, -moz-dialog 2px, -moz-dialog)
%define forwardTransitionLength 150ms
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"], #nav-bar:not([currentset])) > #unified-back-forward-button
%define conditionalForwardWithUrlbar_small window:not([chromehidden~=toolbar]) :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"][iconsize=small],#nav-bar:not([currentset])[iconsize=small]) > #unified-back-forward-button
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"], #nav-bar:not([currentset])) > #nav-bar-customizationtarget > #unified-back-forward-button
%define conditionalForwardWithUrlbar_small window:not([chromehidden~=toolbar]) :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"][iconsize=small],#nav-bar:not([currentset])[iconsize=small]) > #nav-bar-customizationtarget > #unified-back-forward-button
%define conditionalForwardWithUrlbarWidth 32
%define conditionalForwardWithUrlbarWidth_small 24

View File

@ -9,7 +9,7 @@
%define fgTabTexture linear-gradient(hsla(0,0%,100%,0.6), hsla(0,0%,100%,0.6) 0px, hsl(0,0%,99%) 1px, hsl(0,0%,92%))
%define fgTabBackgroundMiddle linear-gradient(transparent, transparent)
%define forwardTransitionLength 150ms
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) #navigator-toolbox[iconsize=large] > :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"],#nav-bar:not([currentset])) > #unified-back-forward-button
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) #navigator-toolbox[iconsize=large] > :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"],#nav-bar:not([currentset])) > #nav-bar-customizationtarget > #unified-back-forward-button
%define conditionalForwardWithUrlbarWidth 27
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

View File

@ -15,7 +15,7 @@
%define navbarTextboxCustomBorder border-color: rgba(0,0,0,.32);
%define navbarLargeIcons #navigator-toolbox[iconsize=large] > #nav-bar
%define forwardTransitionLength 150ms
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) #navigator-toolbox[iconsize=large] > :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"],#nav-bar:not([currentset])) > #unified-back-forward-button
%define conditionalForwardWithUrlbar window:not([chromehidden~=toolbar]) #navigator-toolbox[iconsize=large] > :-moz-any(#nav-bar[currentset*="unified-back-forward-button,urlbar-container"],#nav-bar:not([currentset])) > #nav-bar-customizationtarget > #unified-back-forward-button
%define conditionalForwardWithUrlbarWidth 27
%ifdef MOZ_OFFICIAL_BRANDING