зеркало из https://github.com/mozilla/gecko-dev.git
Bug 670684 - Remove all tabs panel code . r=gavin
This commit is contained in:
Родитель
0c015e72d6
Коммит
c61334344b
|
@ -425,7 +425,6 @@ pref("browser.tabs.closeButtons", 1);
|
|||
// false return to the adjacent tab (old default)
|
||||
pref("browser.tabs.selectOwnerOnClose", true);
|
||||
|
||||
pref("browser.allTabs.previews", false);
|
||||
pref("browser.ctrlTab.previews", false);
|
||||
pref("browser.ctrlTab.recentlyUsedLimit", 7);
|
||||
|
||||
|
|
|
@ -256,6 +256,7 @@ var ctrlTab = {
|
|||
var showAllLabel = gNavigatorBundle.getString("ctrlTab.showAll.label");
|
||||
this.showAllButton.label =
|
||||
PluralForm.get(this.tabCount, showAllLabel).replace("#1", this.tabCount);
|
||||
this.showAllButton.hidden = !allTabs.canOpen;
|
||||
},
|
||||
|
||||
updatePreview: function ctrlTab_updatePreview(aPreview, aTab) {
|
||||
|
@ -362,8 +363,6 @@ var ctrlTab = {
|
|||
if (this.isOpen)
|
||||
return;
|
||||
|
||||
allTabs.close();
|
||||
|
||||
document.addEventListener("keyup", this, true);
|
||||
|
||||
this.updatePreviews();
|
||||
|
@ -525,6 +524,10 @@ var ctrlTab = {
|
|||
if (event.keyCode == event.DOM_VK_CONTROL)
|
||||
this.pick();
|
||||
break;
|
||||
case "popupshowing":
|
||||
if (event.target.id == "menu_viewPopup")
|
||||
document.getElementById("menu_showAllTabs").hidden = !allTabs.canOpen;
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -543,6 +546,7 @@ var ctrlTab = {
|
|||
// If we're not running, hide the "Show All Tabs" menu item,
|
||||
// as Shift+Ctrl+Tab will be handled by the tab bar.
|
||||
document.getElementById("menu_showAllTabs").hidden = !enable;
|
||||
document.getElementById("menu_viewPopup")[toggleEventListener]("popupshowing", this);
|
||||
|
||||
// Also disable the <key> to ensure Shift+Ctrl+Tab never triggers
|
||||
// Show All Tabs.
|
||||
|
@ -556,497 +560,19 @@ var ctrlTab = {
|
|||
|
||||
|
||||
/**
|
||||
* All Tabs panel
|
||||
* All Tabs menu
|
||||
*/
|
||||
var allTabs = {
|
||||
get panel () {
|
||||
delete this.panel;
|
||||
return this.panel = document.getElementById("allTabs-panel");
|
||||
},
|
||||
get filterField () {
|
||||
delete this.filterField;
|
||||
return this.filterField = document.getElementById("allTabs-filter");
|
||||
},
|
||||
get container () {
|
||||
delete this.container;
|
||||
return this.container = document.getElementById("allTabs-container");
|
||||
},
|
||||
get tabCloseButton () {
|
||||
delete this.tabCloseButton;
|
||||
return this.tabCloseButton = document.getElementById("allTabs-tab-close-button");
|
||||
},
|
||||
get toolbarButton() document.getElementById("alltabs-button"),
|
||||
get previews () this.container.getElementsByClassName("allTabs-preview"),
|
||||
get isOpen () this.panel.state == "open" || this.panel.state == "showing",
|
||||
|
||||
init: function allTabs_init() {
|
||||
if (this._initiated)
|
||||
return;
|
||||
this._initiated = true;
|
||||
|
||||
tabPreviews.init();
|
||||
|
||||
Array.forEach(gBrowser.tabs, function (tab) {
|
||||
this._addPreview(tab);
|
||||
}, this);
|
||||
|
||||
gBrowser.tabContainer.addEventListener("TabOpen", this, false);
|
||||
gBrowser.tabContainer.addEventListener("TabAttrModified", this, false);
|
||||
gBrowser.tabContainer.addEventListener("TabMove", this, false);
|
||||
gBrowser.tabContainer.addEventListener("TabClose", this, false);
|
||||
},
|
||||
|
||||
uninit: function allTabs_uninit() {
|
||||
if (!this._initiated)
|
||||
return;
|
||||
|
||||
gBrowser.tabContainer.removeEventListener("TabOpen", this, false);
|
||||
gBrowser.tabContainer.removeEventListener("TabAttrModified", this, false);
|
||||
gBrowser.tabContainer.removeEventListener("TabMove", this, false);
|
||||
gBrowser.tabContainer.removeEventListener("TabClose", this, false);
|
||||
|
||||
while (this.container.hasChildNodes())
|
||||
this.container.removeChild(this.container.firstChild);
|
||||
|
||||
this._initiated = false;
|
||||
},
|
||||
|
||||
prefName: "browser.allTabs.previews",
|
||||
readPref: function allTabs_readPref() {
|
||||
var allTabsButton = this.toolbarButton;
|
||||
if (!allTabsButton)
|
||||
return;
|
||||
|
||||
if (gPrefService.getBoolPref(this.prefName)) {
|
||||
allTabsButton.removeAttribute("type");
|
||||
allTabsButton.setAttribute("command", "Browser:ShowAllTabs");
|
||||
} else {
|
||||
allTabsButton.setAttribute("type", "menu");
|
||||
allTabsButton.removeAttribute("command");
|
||||
allTabsButton.removeAttribute("oncommand");
|
||||
}
|
||||
},
|
||||
observe: function (aSubject, aTopic, aPrefName) {
|
||||
this.readPref();
|
||||
},
|
||||
|
||||
pick: function allTabs_pick(aPreview) {
|
||||
if (!aPreview)
|
||||
aPreview = this._firstVisiblePreview;
|
||||
if (aPreview)
|
||||
this.tabToSelect = aPreview._tab;
|
||||
|
||||
this.close();
|
||||
},
|
||||
|
||||
closeTab: function allTabs_closeTab(event) {
|
||||
this.filterField.focus();
|
||||
gBrowser.removeTab(event.currentTarget._targetPreview._tab);
|
||||
},
|
||||
|
||||
filter: function allTabs_filter() {
|
||||
if (this._currentFilter == this.filterField.value)
|
||||
return;
|
||||
|
||||
this._currentFilter = this.filterField.value;
|
||||
|
||||
var filter = this._currentFilter.split(/\s+/g);
|
||||
this._visible = 0;
|
||||
Array.forEach(this.previews, function (preview) {
|
||||
var tab = preview._tab;
|
||||
var matches = 0;
|
||||
if (filter.length && !tab.hidden) {
|
||||
let tabstring = tab.linkedBrowser.currentURI.spec;
|
||||
try {
|
||||
tabstring = decodeURI(tabstring);
|
||||
} catch (e) {}
|
||||
tabstring = tab.label + " " + tab.label.toLocaleLowerCase() + " " + tabstring;
|
||||
for (let i = 0; i < filter.length; i++)
|
||||
matches += tabstring.contains(filter[i]);
|
||||
}
|
||||
if (matches < filter.length || tab.hidden) {
|
||||
preview.hidden = true;
|
||||
}
|
||||
else {
|
||||
this._visible++;
|
||||
this._updatePreview(preview);
|
||||
preview.hidden = false;
|
||||
}
|
||||
}, this);
|
||||
|
||||
this._reflow();
|
||||
},
|
||||
get canOpen() isElementVisible(this.toolbarButton),
|
||||
|
||||
open: function allTabs_open() {
|
||||
var allTabsButton = this.toolbarButton;
|
||||
if (allTabsButton &&
|
||||
allTabsButton.getAttribute("type") == "menu") {
|
||||
if (this.canOpen) {
|
||||
// Without setTimeout, the menupopup won't stay open when invoking
|
||||
// "View > Show All Tabs" and the menu bar auto-hides.
|
||||
setTimeout(function () {
|
||||
allTabsButton.open = true;
|
||||
allTabs.toolbarButton.open = true;
|
||||
}, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
this.init();
|
||||
|
||||
if (this.isOpen)
|
||||
return;
|
||||
|
||||
this._maxPanelHeight = Math.max(gBrowser.clientHeight, screen.availHeight / 2);
|
||||
this._maxPanelWidth = Math.max(gBrowser.clientWidth, screen.availWidth / 2);
|
||||
|
||||
this.filter();
|
||||
|
||||
tabPreviewPanelHelper.opening(this);
|
||||
|
||||
this.panel.popupBoxObject.setConsumeRollupEvent(Ci.nsIPopupBoxObject.ROLLUP_NO_CONSUME);
|
||||
this.panel.openPopup(gBrowser, "overlap", 0, 0, false, true);
|
||||
},
|
||||
|
||||
close: function allTabs_close() {
|
||||
this.panel.hidePopup();
|
||||
},
|
||||
|
||||
setupGUI: function allTabs_setupGUI() {
|
||||
this.filterField.focus();
|
||||
this.filterField.placeholder = this.filterField.tooltipText;
|
||||
|
||||
this.panel.addEventListener("keypress", this, false);
|
||||
this.panel.addEventListener("keypress", this, true);
|
||||
this._browserCommandSet.addEventListener("command", this, false);
|
||||
|
||||
// When the panel is open, a second click on the all tabs button should
|
||||
// close the panel but not re-open it.
|
||||
document.getElementById("Browser:ShowAllTabs").setAttribute("disabled", "true");
|
||||
},
|
||||
|
||||
suspendGUI: function allTabs_suspendGUI() {
|
||||
this.filterField.placeholder = "";
|
||||
this.filterField.value = "";
|
||||
this._currentFilter = null;
|
||||
|
||||
this._updateTabCloseButton();
|
||||
|
||||
this.panel.removeEventListener("keypress", this, false);
|
||||
this.panel.removeEventListener("keypress", this, true);
|
||||
this._browserCommandSet.removeEventListener("command", this, false);
|
||||
|
||||
setTimeout(function () {
|
||||
document.getElementById("Browser:ShowAllTabs").removeAttribute("disabled");
|
||||
}, 300);
|
||||
},
|
||||
|
||||
handleEvent: function allTabs_handleEvent(event) {
|
||||
if (event.type.startsWith("Tab")) {
|
||||
var tab = event.target;
|
||||
if (event.type != "TabOpen")
|
||||
var preview = this._getPreview(tab);
|
||||
}
|
||||
switch (event.type) {
|
||||
case "TabAttrModified":
|
||||
// tab attribute modified (e.g. label, crop, busy, image)
|
||||
if (!preview.hidden)
|
||||
this._updatePreview(preview);
|
||||
break;
|
||||
case "TabOpen":
|
||||
if (this.isOpen)
|
||||
this.close();
|
||||
this._addPreview(tab);
|
||||
break;
|
||||
case "TabMove":
|
||||
let siblingPreview = tab.nextSibling &&
|
||||
this._getPreview(tab.nextSibling);
|
||||
if (siblingPreview)
|
||||
siblingPreview.parentNode.insertBefore(preview, siblingPreview);
|
||||
else
|
||||
this.container.lastChild.appendChild(preview);
|
||||
if (this.isOpen && !preview.hidden) {
|
||||
this._reflow();
|
||||
preview.focus();
|
||||
}
|
||||
break;
|
||||
case "TabClose":
|
||||
this._removePreview(preview);
|
||||
break;
|
||||
case "keypress":
|
||||
this._onKeyPress(event);
|
||||
break;
|
||||
case "command":
|
||||
if (event.target.id != "Browser:ShowAllTabs") {
|
||||
// Close the panel when there's a browser command executing in the background.
|
||||
this.close();
|
||||
}
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
_visible: 0,
|
||||
_currentFilter: null,
|
||||
get _stack () {
|
||||
delete this._stack;
|
||||
return this._stack = document.getElementById("allTabs-stack");
|
||||
},
|
||||
get _browserCommandSet () {
|
||||
delete this._browserCommandSet;
|
||||
return this._browserCommandSet = document.getElementById("mainCommandSet");
|
||||
},
|
||||
get _previewLabelHeight () {
|
||||
delete this._previewLabelHeight;
|
||||
return this._previewLabelHeight = parseInt(getComputedStyle(this.previews[0], "").lineHeight);
|
||||
},
|
||||
|
||||
get _visiblePreviews ()
|
||||
Array.filter(this.previews, function (preview) !preview.hidden),
|
||||
|
||||
get _firstVisiblePreview () {
|
||||
if (this._visible == 0)
|
||||
return null;
|
||||
var previews = this.previews;
|
||||
for (let i = 0; i < previews.length; i++) {
|
||||
if (!previews[i].hidden)
|
||||
return previews[i];
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_reflow: function allTabs_reflow() {
|
||||
this._updateTabCloseButton();
|
||||
|
||||
const CONTAINER_MAX_WIDTH = this._maxPanelWidth * .95;
|
||||
const CONTAINER_MAX_HEIGHT = this._maxPanelHeight - 35;
|
||||
// the size of the whole preview relative to the thumbnail
|
||||
const REL_PREVIEW_THUMBNAIL = 1.2;
|
||||
const REL_PREVIEW_HEIGHT_WIDTH = tabPreviews.height / tabPreviews.width;
|
||||
const PREVIEW_MAX_WIDTH = tabPreviews.width * REL_PREVIEW_THUMBNAIL;
|
||||
|
||||
var rows, previewHeight, previewWidth, outerHeight;
|
||||
this._columns = Math.floor(CONTAINER_MAX_WIDTH / PREVIEW_MAX_WIDTH);
|
||||
do {
|
||||
rows = Math.ceil(this._visible / this._columns);
|
||||
previewWidth = Math.min(PREVIEW_MAX_WIDTH,
|
||||
Math.round(CONTAINER_MAX_WIDTH / this._columns));
|
||||
previewHeight = Math.round(previewWidth * REL_PREVIEW_HEIGHT_WIDTH);
|
||||
outerHeight = previewHeight + this._previewLabelHeight;
|
||||
} while (rows * outerHeight > CONTAINER_MAX_HEIGHT && ++this._columns);
|
||||
|
||||
var outerWidth = previewWidth;
|
||||
{
|
||||
let innerWidth = Math.ceil(previewWidth / REL_PREVIEW_THUMBNAIL);
|
||||
let innerHeight = Math.ceil(previewHeight / REL_PREVIEW_THUMBNAIL);
|
||||
var canvasStyle = "max-width:" + innerWidth + "px;" +
|
||||
"min-width:" + innerWidth + "px;" +
|
||||
"max-height:" + innerHeight + "px;" +
|
||||
"min-height:" + innerHeight + "px;";
|
||||
}
|
||||
|
||||
var previews = Array.slice(this.previews);
|
||||
|
||||
while (this.container.hasChildNodes())
|
||||
this.container.removeChild(this.container.firstChild);
|
||||
for (let i = rows || 1; i > 0; i--)
|
||||
this.container.appendChild(document.createElement("hbox"));
|
||||
|
||||
var row = this.container.firstChild;
|
||||
var colCount = 0;
|
||||
previews.forEach(function (preview) {
|
||||
if (!preview.hidden &&
|
||||
++colCount > this._columns) {
|
||||
row = row.nextSibling;
|
||||
colCount = 1;
|
||||
}
|
||||
preview.setAttribute("minwidth", outerWidth);
|
||||
preview.setAttribute("height", outerHeight);
|
||||
preview.setAttribute("canvasstyle", canvasStyle);
|
||||
preview.removeAttribute("closebuttonhover");
|
||||
row.appendChild(preview);
|
||||
}, this);
|
||||
|
||||
this._stack.width = this._maxPanelWidth;
|
||||
this.container.width = Math.ceil(outerWidth * Math.min(this._columns, this._visible));
|
||||
this.container.left = Math.round((this._maxPanelWidth - this.container.width) / 2);
|
||||
this.container.maxWidth = this._maxPanelWidth - this.container.left;
|
||||
this.container.maxHeight = rows * outerHeight;
|
||||
},
|
||||
|
||||
_addPreview: function allTabs_addPreview(aTab) {
|
||||
var preview = document.createElement("button");
|
||||
preview.className = "allTabs-preview";
|
||||
preview._tab = aTab;
|
||||
this.container.lastChild.appendChild(preview);
|
||||
},
|
||||
|
||||
_removePreview: function allTabs_removePreview(aPreview) {
|
||||
var updateUI = (this.isOpen && !aPreview.hidden);
|
||||
aPreview._tab = null;
|
||||
aPreview.parentNode.removeChild(aPreview);
|
||||
if (updateUI) {
|
||||
this._visible--;
|
||||
this._reflow();
|
||||
this.filterField.focus();
|
||||
}
|
||||
},
|
||||
|
||||
_getPreview: function allTabs_getPreview(aTab) {
|
||||
var previews = this.previews;
|
||||
for (let i = 0; i < previews.length; i++)
|
||||
if (previews[i]._tab == aTab)
|
||||
return previews[i];
|
||||
return null;
|
||||
},
|
||||
|
||||
_updateTabCloseButton: function allTabs_updateTabCloseButton(event) {
|
||||
if (event && event.target == this.tabCloseButton)
|
||||
return;
|
||||
|
||||
if (this.tabCloseButton._targetPreview) {
|
||||
if (event && event.target == this.tabCloseButton._targetPreview)
|
||||
return;
|
||||
|
||||
this.tabCloseButton._targetPreview.removeAttribute("closebuttonhover");
|
||||
}
|
||||
|
||||
if (event &&
|
||||
event.target.parentNode.parentNode == this.container &&
|
||||
(event.target._tab.previousSibling || event.target._tab.nextSibling)) {
|
||||
let canvas = event.target.firstChild.getBoundingClientRect();
|
||||
let container = this.container.getBoundingClientRect();
|
||||
let tabCloseButton = this.tabCloseButton.getBoundingClientRect();
|
||||
let alignLeft = getComputedStyle(this.panel, "").direction == "rtl";
|
||||
#ifdef XP_MACOSX
|
||||
alignLeft = !alignLeft;
|
||||
#endif
|
||||
this.tabCloseButton.left = canvas.left -
|
||||
container.left +
|
||||
parseInt(this.container.left) +
|
||||
(alignLeft ? 0 :
|
||||
canvas.width - tabCloseButton.width);
|
||||
this.tabCloseButton.top = canvas.top - container.top;
|
||||
this.tabCloseButton._targetPreview = event.target;
|
||||
this.tabCloseButton.style.visibility = "visible";
|
||||
event.target.setAttribute("closebuttonhover", "true");
|
||||
} else {
|
||||
this.tabCloseButton.style.visibility = "hidden";
|
||||
this.tabCloseButton.left = this.tabCloseButton.top = 0;
|
||||
this.tabCloseButton._targetPreview = null;
|
||||
}
|
||||
},
|
||||
|
||||
_updatePreview: function allTabs_updatePreview(aPreview) {
|
||||
aPreview.setAttribute("label", aPreview._tab.label);
|
||||
aPreview.setAttribute("tooltiptext", aPreview._tab.label);
|
||||
aPreview.setAttribute("crop", aPreview._tab.crop);
|
||||
if (aPreview._tab.image)
|
||||
aPreview.setAttribute("image", aPreview._tab.image);
|
||||
else
|
||||
aPreview.removeAttribute("image");
|
||||
|
||||
var thumbnail = tabPreviews.get(aPreview._tab);
|
||||
if (aPreview.firstChild) {
|
||||
if (aPreview.firstChild == thumbnail)
|
||||
return;
|
||||
aPreview.removeChild(aPreview.firstChild);
|
||||
}
|
||||
aPreview.appendChild(thumbnail);
|
||||
},
|
||||
|
||||
_onKeyPress: function allTabs_onKeyPress(event) {
|
||||
if (event.eventPhase == event.CAPTURING_PHASE) {
|
||||
this._onCapturingKeyPress(event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.keyCode == event.DOM_VK_ESCAPE) {
|
||||
this.close();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.target == this.filterField) {
|
||||
switch (event.keyCode) {
|
||||
case event.DOM_VK_UP:
|
||||
if (this._visible) {
|
||||
let previews = this._visiblePreviews;
|
||||
let columns = Math.min(previews.length, this._columns);
|
||||
previews[Math.floor(previews.length / columns) * columns - 1].focus();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
break;
|
||||
case event.DOM_VK_DOWN:
|
||||
if (this._visible) {
|
||||
this._firstVisiblePreview.focus();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_onCapturingKeyPress: function allTabs_onCapturingKeyPress(event) {
|
||||
switch (event.keyCode) {
|
||||
case event.DOM_VK_UP:
|
||||
case event.DOM_VK_DOWN:
|
||||
if (event.target != this.filterField)
|
||||
this._advanceFocusVertically(event);
|
||||
break;
|
||||
case event.DOM_VK_RETURN:
|
||||
if (event.target == this.filterField) {
|
||||
this.filter();
|
||||
this.pick();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
_advanceFocusVertically: function allTabs_advanceFocusVertically(event) {
|
||||
var preview = document.activeElement;
|
||||
if (!preview || preview.parentNode.parentNode != this.container)
|
||||
return;
|
||||
|
||||
event.stopPropagation();
|
||||
|
||||
var up = (event.keyCode == event.DOM_VK_UP);
|
||||
var previews = this._visiblePreviews;
|
||||
|
||||
if (up && preview == previews[0]) {
|
||||
this.filterField.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
var i = previews.indexOf(preview);
|
||||
var columns = Math.min(previews.length, this._columns);
|
||||
var column = i % columns;
|
||||
var row = Math.floor(i / columns);
|
||||
|
||||
function newIndex() row * columns + column;
|
||||
function outOfBounds() newIndex() >= previews.length;
|
||||
|
||||
if (up) {
|
||||
row--;
|
||||
if (row < 0) {
|
||||
let rows = Math.ceil(previews.length / columns);
|
||||
row = rows - 1;
|
||||
column--;
|
||||
if (outOfBounds())
|
||||
row--;
|
||||
}
|
||||
} else {
|
||||
row++;
|
||||
if (outOfBounds()) {
|
||||
if (column == columns - 1) {
|
||||
this.filterField.focus();
|
||||
return;
|
||||
}
|
||||
row = 0;
|
||||
column++;
|
||||
}
|
||||
}
|
||||
previews[newIndex()].focus();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -34,42 +34,4 @@
|
|||
#endif
|
||||
</handlers>
|
||||
</binding>
|
||||
|
||||
<binding id="allTabs-preview" extends="chrome://global/content/bindings/button.xml#button-base">
|
||||
<content pack="center" align="center">
|
||||
<xul:stack>
|
||||
<xul:vbox class="allTabs-preview-inner" align="center" pack="center">
|
||||
<xul:hbox class="tabPreview-canvas" xbl:inherits="style=canvasstyle">
|
||||
<children/>
|
||||
</xul:hbox>
|
||||
<xul:label flex="1" xbl:inherits="value=label,crop" class="allTabs-preview-label plain"/>
|
||||
</xul:vbox>
|
||||
<xul:hbox class="allTabs-favicon-container">
|
||||
<xul:image class="allTabs-favicon" xbl:inherits="src=image"/>
|
||||
</xul:hbox>
|
||||
</xul:stack>
|
||||
</content>
|
||||
<handlers>
|
||||
<handler event="command" action="allTabs.pick(this);"/>
|
||||
<handler event="click" button="1" action="gBrowser.removeTab(this._tab);"/>
|
||||
|
||||
<handler event="dragstart"><![CDATA[
|
||||
event.dataTransfer.mozSetDataAt("application/x-moz-node", this._tab, 0);
|
||||
]]></handler>
|
||||
|
||||
<handler event="dragover"><![CDATA[
|
||||
let tab = event.dataTransfer.mozGetDataAt("application/x-moz-node", 0);
|
||||
if (tab && tab.parentNode == gBrowser.tabContainer)
|
||||
event.preventDefault();
|
||||
]]></handler>
|
||||
|
||||
<handler event="drop"><![CDATA[
|
||||
let tab = event.dataTransfer.mozGetDataAt("application/x-moz-node", 0);
|
||||
if (tab && tab.parentNode == gBrowser.tabContainer) {
|
||||
let newIndex = Array.indexOf(gBrowser.tabs, this._tab);
|
||||
gBrowser.moveTabTo(tab, newIndex);
|
||||
}
|
||||
]]></handler>
|
||||
</handlers>
|
||||
</binding>
|
||||
</bindings>
|
||||
|
|
|
@ -418,21 +418,17 @@ window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(.chromeclass-m
|
|||
display: none;
|
||||
}
|
||||
|
||||
/* ::::: Keyboard UI Panel ::::: */
|
||||
.KUI-panel-closebutton {
|
||||
-moz-binding: url("chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton-image");
|
||||
}
|
||||
/* ::::: Ctrl-Tab Panel ::::: */
|
||||
|
||||
:-moz-any(.ctrlTab-preview, .allTabs-preview) > html|img,
|
||||
:-moz-any(.ctrlTab-preview, .allTabs-preview) > html|canvas {
|
||||
.ctrlTab-preview > html|img,
|
||||
.ctrlTab-preview > html|canvas {
|
||||
min-width: inherit;
|
||||
max-width: inherit;
|
||||
min-height: inherit;
|
||||
max-height: inherit;
|
||||
}
|
||||
|
||||
.ctrlTab-favicon-container,
|
||||
.allTabs-favicon-container {
|
||||
.ctrlTab-favicon-container {
|
||||
-moz-box-align: start;
|
||||
%ifdef XP_MACOSX
|
||||
-moz-box-pack: end;
|
||||
|
@ -441,27 +437,15 @@ window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(.chromeclass-m
|
|||
%endif
|
||||
}
|
||||
|
||||
.ctrlTab-favicon,
|
||||
.allTabs-favicon {
|
||||
.ctrlTab-favicon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
/* ::::: Ctrl-Tab Panel ::::: */
|
||||
.ctrlTab-preview {
|
||||
-moz-binding: url("chrome://browser/content/browser-tabPreviews.xml#ctrlTab-preview");
|
||||
}
|
||||
|
||||
/* ::::: All Tabs Panel ::::: */
|
||||
.allTabs-preview {
|
||||
-moz-binding: url("chrome://browser/content/browser-tabPreviews.xml#allTabs-preview");
|
||||
}
|
||||
|
||||
#allTabs-tab-close-button {
|
||||
-moz-binding: url("chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton-image");
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
/* notification anchors should only be visible when their associated
|
||||
notifications are */
|
||||
|
|
|
@ -1297,7 +1297,6 @@ var gBrowserInit = {
|
|||
|
||||
// Misc. inits.
|
||||
CombinedStopReload.init();
|
||||
allTabs.readPref();
|
||||
TabsOnTop.init();
|
||||
BookmarksMenuButton.init();
|
||||
gPrivateBrowsingUI.init();
|
||||
|
@ -1459,7 +1458,6 @@ var gBrowserInit = {
|
|||
|
||||
ctrlTab.readPref();
|
||||
gPrefService.addObserver(ctrlTab.prefName, ctrlTab, false);
|
||||
gPrefService.addObserver(allTabs.prefName, allTabs, false);
|
||||
|
||||
// Initialize the download manager some time after the app starts so that
|
||||
// auto-resume downloads begin (such as after crashing or quitting with
|
||||
|
@ -1650,7 +1648,6 @@ var gBrowserInit = {
|
|||
|
||||
// First clean up services initialized in gBrowserInit.onLoad (or those whose
|
||||
// uninit methods don't depend on the services having been initialized).
|
||||
allTabs.uninit();
|
||||
|
||||
CombinedStopReload.uninit();
|
||||
|
||||
|
@ -1690,7 +1687,6 @@ var gBrowserInit = {
|
|||
Win7Features.onCloseWindow();
|
||||
|
||||
gPrefService.removeObserver(ctrlTab.prefName, ctrlTab);
|
||||
gPrefService.removeObserver(allTabs.prefName, allTabs);
|
||||
ctrlTab.uninit();
|
||||
TabView.uninit();
|
||||
gBrowserThumbnails.uninit();
|
||||
|
@ -3799,7 +3795,6 @@ function BrowserToolboxCustomizeChange(aType) {
|
|||
default:
|
||||
gHomeButton.updatePersonalToolbarStyle();
|
||||
BookmarksMenuButton.customizeChange();
|
||||
allTabs.readPref();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -396,29 +396,6 @@
|
|||
</hbox>
|
||||
</panel>
|
||||
|
||||
<panel id="allTabs-panel" hidden="true" norestorefocus="true" ignorekeys="true"
|
||||
onmouseover="allTabs._updateTabCloseButton(event);">
|
||||
<hbox id="allTabs-meta" align="center">
|
||||
<spacer flex="1"/>
|
||||
<textbox id="allTabs-filter"
|
||||
tooltiptext="&allTabs.filter.emptyText;"
|
||||
type="search"
|
||||
oncommand="allTabs.filter();"/>
|
||||
<spacer flex="1"/>
|
||||
<toolbarbutton class="KUI-panel-closebutton"
|
||||
oncommand="allTabs.close()"
|
||||
tooltiptext="&closeCmd.label;"/>
|
||||
</hbox>
|
||||
<stack id="allTabs-stack">
|
||||
<vbox id="allTabs-container"><hbox/></vbox>
|
||||
<toolbarbutton id="allTabs-tab-close-button"
|
||||
class="tabs-closebutton"
|
||||
oncommand="allTabs.closeTab(event);"
|
||||
tooltiptext="&closeCmd.label;"
|
||||
style="visibility:hidden"/>
|
||||
</stack>
|
||||
</panel>
|
||||
|
||||
<!-- Bookmarks and history tooltip -->
|
||||
<tooltip id="bhTooltip"/>
|
||||
|
||||
|
|
|
@ -72,7 +72,6 @@ _BROWSER_FILES = \
|
|||
head.js \
|
||||
browser_typeAheadFind.js \
|
||||
browser_keywordSearch.js \
|
||||
browser_allTabsPanel.js \
|
||||
browser_alltabslistener.js \
|
||||
browser_bug304198.js \
|
||||
title_test.svg \
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
Services.prefs.setBoolPref(allTabs.prefName, true);
|
||||
registerCleanupFunction(function () {
|
||||
Services.prefs.clearUserPref(allTabs.prefName);
|
||||
});
|
||||
|
||||
allTabs.init();
|
||||
nextSequence();
|
||||
}
|
||||
|
||||
var sequences = 3;
|
||||
var chars = "ABCDEFGHI";
|
||||
var closedTabs;
|
||||
var history;
|
||||
var steps;
|
||||
var whenOpen = [
|
||||
startSearch,
|
||||
clearSearch, clearSearch,
|
||||
closeTab,
|
||||
moveTab,
|
||||
closePanel,
|
||||
];
|
||||
var whenClosed = [
|
||||
openPanel, openPanel, openPanel, openPanel, openPanel, openPanel,
|
||||
closeTab, closeTab, closeTab,
|
||||
moveTab, moveTab, moveTab,
|
||||
selectTab, selectTab,
|
||||
undoCloseTab,
|
||||
openTab,
|
||||
];
|
||||
|
||||
function rand(min, max) {
|
||||
return min + Math.floor(Math.random() * (max - min + 1));
|
||||
}
|
||||
function pickOne(array) {
|
||||
return array[rand(0, array.length - 1)];
|
||||
}
|
||||
function pickOneTab() {
|
||||
var tab = pickOne(gBrowser.tabs);
|
||||
return [tab, Array.indexOf(gBrowser.tabs, tab)];
|
||||
}
|
||||
function nextSequence() {
|
||||
while (gBrowser.browsers.length > 1)
|
||||
gBrowser.removeCurrentTab();
|
||||
if (sequences-- <= 0) {
|
||||
allTabs.close();
|
||||
gBrowser.addTab();
|
||||
gBrowser.removeCurrentTab();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
closedTabs = 0;
|
||||
steps = rand(10, 20);
|
||||
var initialTabs = "";
|
||||
while (gBrowser.browsers.length < rand(3, 20)) {
|
||||
let tabChar = pickOne(chars);
|
||||
initialTabs += tabChar;
|
||||
gBrowser.addTab("data:text/plain," + tabChar);
|
||||
}
|
||||
history = [initialTabs];
|
||||
gBrowser.removeCurrentTab();
|
||||
next();
|
||||
}
|
||||
function next() {
|
||||
executeSoon(function () {
|
||||
is(allTabs.previews.length, gBrowser.browsers.length,
|
||||
history.join(", "));
|
||||
if (steps-- <= 0) {
|
||||
nextSequence();
|
||||
return;
|
||||
}
|
||||
var step;
|
||||
var rv;
|
||||
do {
|
||||
step = pickOne(allTabs.isOpen ? whenOpen : whenClosed);
|
||||
info(step.name);
|
||||
rv = step();
|
||||
} while (rv === false);
|
||||
history.push(step.name + (rv !== true && rv !== undefined ? " " + rv : ""));
|
||||
});
|
||||
}
|
||||
|
||||
function openPanel() {
|
||||
if (allTabs.isOpen)
|
||||
return false;
|
||||
allTabs.panel.addEventListener("popupshown", function () {
|
||||
allTabs.panel.removeEventListener("popupshown", arguments.callee, false);
|
||||
next();
|
||||
}, false);
|
||||
allTabs.open();
|
||||
return true;
|
||||
}
|
||||
|
||||
function closePanel() {
|
||||
allTabs.panel.addEventListener("popuphidden", function () {
|
||||
allTabs.panel.removeEventListener("popuphidden", arguments.callee, false);
|
||||
next();
|
||||
}, false);
|
||||
allTabs.close();
|
||||
}
|
||||
|
||||
function closeTab() {
|
||||
if (gBrowser.browsers.length == 1)
|
||||
return false;
|
||||
var [tab, index] = pickOneTab();
|
||||
gBrowser.removeTab(tab);
|
||||
closedTabs++;
|
||||
next();
|
||||
return index;
|
||||
}
|
||||
|
||||
function startSearch() {
|
||||
allTabs.filterField.value = pickOne(chars);
|
||||
info(allTabs.filterField.value);
|
||||
allTabs.filter();
|
||||
next();
|
||||
return allTabs.filterField.value;
|
||||
}
|
||||
|
||||
function clearSearch() {
|
||||
if (!allTabs.filterField.value)
|
||||
return false;
|
||||
allTabs.filterField.value = "";
|
||||
allTabs.filter();
|
||||
next();
|
||||
return true;
|
||||
}
|
||||
|
||||
function undoCloseTab() {
|
||||
if (!closedTabs)
|
||||
return false;
|
||||
window.undoCloseTab(0);
|
||||
closedTabs--;
|
||||
next();
|
||||
return true;
|
||||
}
|
||||
|
||||
function selectTab() {
|
||||
var [tab, index] = pickOneTab();
|
||||
gBrowser.selectedTab = tab;
|
||||
next();
|
||||
return index;
|
||||
}
|
||||
|
||||
function openTab() {
|
||||
BrowserOpenTab();
|
||||
next();
|
||||
}
|
||||
|
||||
function moveTab() {
|
||||
if (gBrowser.browsers.length == 1)
|
||||
return false;
|
||||
var [tab, currentIndex] = pickOneTab();
|
||||
do {
|
||||
var [, newIndex] = pickOneTab();
|
||||
} while (newIndex == currentIndex);
|
||||
gBrowser.moveTabTo(tab, newIndex);
|
||||
next();
|
||||
return currentIndex + "->" + newIndex;
|
||||
}
|
|
@ -9,7 +9,7 @@ function test() {
|
|||
|
||||
ctrlTabTest([2] , 1, 0);
|
||||
ctrlTabTest([2, 3, 1], 2, 2);
|
||||
ctrlTabTest([] , 5, 2);
|
||||
ctrlTabTest([] , 4, 2);
|
||||
|
||||
{
|
||||
let selectedIndex = gBrowser.tabContainer.selectedIndex;
|
||||
|
@ -39,7 +39,7 @@ function test() {
|
|||
|
||||
gBrowser.addTab();
|
||||
checkTabs(3);
|
||||
ctrlTabTest([2, 1, 0], 9, 1);
|
||||
ctrlTabTest([2, 1, 0], 7, 1);
|
||||
|
||||
gBrowser.addTab();
|
||||
checkTabs(4);
|
||||
|
|
|
@ -585,7 +585,6 @@ just addresses the organization to follow, e.g. "This site is run by " -->
|
|||
|
||||
<!ENTITY identity.moreInfoLinkText "More Information…">
|
||||
|
||||
<!ENTITY allTabs.filter.emptyText "Search Tabs">
|
||||
<!-- Name for the tabs toolbar as spoken by screen readers.
|
||||
The word "toolbar" is appended automatically and should not be contained below! -->
|
||||
<!ENTITY tabsToolbar.label "Browser tabs">
|
||||
|
|
Двоичные данные
browser/themes/gnomestripe/KUI-close.png
Двоичные данные
browser/themes/gnomestripe/KUI-close.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 393 B |
|
@ -1773,16 +1773,11 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
|
|||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
#alltabs-button > .toolbarbutton-icon {
|
||||
list-style-image: url("chrome://browser/skin/tabbrowser/alltabs.png");
|
||||
margin: 2px 0 1px;
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] > .toolbarbutton-menu-dropmarker {
|
||||
#alltabs-button > .toolbarbutton-menu-dropmarker {
|
||||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] > .toolbarbutton-icon {
|
||||
#alltabs-button > .toolbarbutton-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -1836,20 +1831,9 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon {
|
|||
display: -moz-box; /* display chevron icon in text mode */
|
||||
}
|
||||
|
||||
/* ::::: Keyboard UI Panel ::::: */
|
||||
/* Ctrl-Tab */
|
||||
|
||||
.KUI-panel-closebutton {
|
||||
list-style-image: url(KUI-close.png);
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton > .toolbarbutton-icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ::::: Ctrl-Tab and All Tabs Panels ::::: */
|
||||
|
||||
.ctrlTab-preview,
|
||||
.allTabs-preview {
|
||||
.ctrlTab-preview {
|
||||
-moz-appearance: toolbarbutton;
|
||||
}
|
||||
|
||||
|
@ -1858,22 +1842,17 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon {
|
|||
}
|
||||
|
||||
.ctrlTab-preview:focus .tabPreview-canvas,
|
||||
.ctrlTab-preview:hover .tabPreview-canvas,
|
||||
.allTabs-preview:focus .tabPreview-canvas,
|
||||
.allTabs-preview:hover .tabPreview-canvas {
|
||||
.ctrlTab-preview:hover .tabPreview-canvas {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.ctrlTab-favicon[src],
|
||||
.allTabs-favicon[src] {
|
||||
.ctrlTab-favicon[src] {
|
||||
background-color: white;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/* Ctrl-Tab */
|
||||
|
||||
#ctrlTab-panel {
|
||||
padding: 10px;
|
||||
}
|
||||
|
@ -1889,25 +1868,6 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon {
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* All Tabs */
|
||||
|
||||
#allTabs-panel {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#allTabs-meta {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#allTabs-filter {
|
||||
-moz-margin-start: 36px;
|
||||
-moz-margin-end: 0;
|
||||
}
|
||||
|
||||
.allTabs-preview-label {
|
||||
transform: translate(0, 2px);
|
||||
}
|
||||
|
||||
/* Application button menu */
|
||||
|
||||
.splitmenu-menuitem {
|
||||
|
|
|
@ -30,7 +30,6 @@ browser.jar:
|
|||
skin/classic/browser/identity-icons-https-ev.png
|
||||
skin/classic/browser/identity-icons-https-mixed-active.png
|
||||
skin/classic/browser/Info.png
|
||||
skin/classic/browser/KUI-close.png
|
||||
skin/classic/browser/mixed-content-blocked-16.png
|
||||
skin/classic/browser/monitor.png
|
||||
skin/classic/browser/monitor_16-10.png
|
||||
|
@ -100,7 +99,6 @@ browser.jar:
|
|||
skin/classic/browser/preferences/aboutPermissions.css (preferences/aboutPermissions.css)
|
||||
skin/classic/browser/social/social.png (social/social.png)
|
||||
skin/classic/browser/social/chat-close.png (social/chat-close.png)
|
||||
skin/classic/browser/tabbrowser/alltabs.png (tabbrowser/alltabs.png)
|
||||
skin/classic/browser/tabbrowser/connecting.png (tabbrowser/connecting.png)
|
||||
skin/classic/browser/tabbrowser/loading.png (tabbrowser/loading.png)
|
||||
skin/classic/browser/tabbrowser/tab.png (tabbrowser/tab.png)
|
||||
|
|
Двоичные данные
browser/themes/gnomestripe/tabbrowser/alltabs.png
Двоичные данные
browser/themes/gnomestripe/tabbrowser/alltabs.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 192 B |
Двоичные данные
browser/themes/pinstripe/KUI-close.png
Двоичные данные
browser/themes/pinstripe/KUI-close.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 393 B |
|
@ -2763,7 +2763,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
-moz-image-region: rect(0, 34px, 20px, 17px);
|
||||
}
|
||||
|
||||
#TabsToolbar > #alltabs-button[type="menu"][open="true"]:not([disabled="true"]),
|
||||
#TabsToolbar > #alltabs-button[open="true"]:not([disabled="true"]),
|
||||
#TabsToolbar > #alltabs-button:not([disabled="true"]):hover:active {
|
||||
-moz-image-region: rect(0, 51px, 20px, 34px);
|
||||
}
|
||||
|
@ -2778,7 +2778,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
-moz-image-region: rect(0, 68px, 40px, 34px);
|
||||
}
|
||||
|
||||
#TabsToolbar > #alltabs-button[type="menu"][open="true"]:not([disabled="true"]),
|
||||
#TabsToolbar > #alltabs-button[open="true"]:not([disabled="true"]),
|
||||
#TabsToolbar > #alltabs-button:not([disabled="true"]):hover:active {
|
||||
-moz-image-region: rect(0, 102px, 40px, 68px);
|
||||
}
|
||||
|
@ -2788,7 +2788,7 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
}
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] > .toolbarbutton-menu-dropmarker {
|
||||
#alltabs-button > .toolbarbutton-menu-dropmarker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -3267,25 +3267,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
-moz-window-shadow: none;
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton {
|
||||
list-style-image: url(KUI-close.png);
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton:not(:hover) {
|
||||
opacity: .6;
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton > .toolbarbutton-icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ::::: Ctrl-Tab and All Tabs Panels ::::: */
|
||||
|
||||
/* Ctrl-Tab */
|
||||
|
||||
#ctrlTab-panel {
|
||||
|
@ -3335,65 +3316,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||
margin-top: .5em;
|
||||
}
|
||||
|
||||
/* All Tabs */
|
||||
|
||||
#allTabs-panel {
|
||||
padding-bottom: 10px;
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
background: -moz-dialog;
|
||||
color: -moz-dialogText;
|
||||
}
|
||||
|
||||
#allTabs-meta {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
#allTabs-filter {
|
||||
-moz-margin-start: 24px;
|
||||
-moz-margin-end: 0;
|
||||
}
|
||||
|
||||
#allTabs-tab-close-button > .toolbarbutton-icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.allTabs-favicon[src] {
|
||||
background-color: -moz-dialog;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding-bottom: 4px;
|
||||
-moz-padding-start: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.allTabs-favicon[src]:-moz-locale-dir(rtl) {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.allTabs-preview:not(:focus) > * > .allTabs-favicon-container > .allTabs-favicon[src] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
padding-top: 2px;
|
||||
-moz-padding-end: 2px;
|
||||
margin-top: -2px;
|
||||
-moz-margin-end: -2px;
|
||||
}
|
||||
|
||||
.allTabs-preview-inner > .tabPreview-canvas {
|
||||
background-color: rgb(60%,60%,60%);
|
||||
box-shadow: 0 0 1.5px ThreeDShadow;
|
||||
}
|
||||
|
||||
.allTabs-preview:not(:hover):not([closebuttonhover]) > html|canvas {
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.allTabs-preview:focus > * > .allTabs-preview-inner {
|
||||
box-shadow: @focusRingShadow@;
|
||||
}
|
||||
|
||||
/* Add-on bar */
|
||||
|
||||
#addon-bar {
|
||||
|
|
|
@ -39,7 +39,6 @@ browser.jar:
|
|||
skin/classic/browser/Info.png
|
||||
skin/classic/browser/keyhole-circle.png
|
||||
skin/classic/browser/KUI-background.png
|
||||
skin/classic/browser/KUI-close.png
|
||||
skin/classic/browser/menu-back.png
|
||||
skin/classic/browser/menu-forward.png
|
||||
skin/classic/browser/mixed-content-blocked-16.png
|
||||
|
|
Двоичные данные
browser/themes/winstripe/KUI-close.png
Двоичные данные
browser/themes/winstripe/KUI-close.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 393 B |
|
@ -318,7 +318,6 @@
|
|||
padding-right: 1px;
|
||||
}
|
||||
|
||||
#allTabs-panel,
|
||||
#ctrlTab-panel {
|
||||
background: transparent;
|
||||
-moz-appearance: -moz-win-glass;
|
||||
|
|
|
@ -2010,28 +2010,22 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
|
|||
}
|
||||
|
||||
#alltabs-button {
|
||||
list-style-image: url("chrome://browser/skin/tabbrowser/alltabs.png");
|
||||
-moz-image-region: rect(0, 14px, 16px, 0);
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] {
|
||||
list-style-image: url("chrome://browser/skin/toolbarbutton-dropdown-arrow.png");
|
||||
-moz-image-region: auto;
|
||||
}
|
||||
|
||||
%ifdef WINSTRIPE_AERO
|
||||
:-moz-any(#TabsToolbar, #nav-bar[tabsontop=false], #toolbar-menubar) > #alltabs-button[type=menu]:-moz-system-metric(windows-compositor):not(:-moz-lwtheme),
|
||||
:-moz-any(#TabsToolbar, #nav-bar[tabsontop=false], #toolbar-menubar) > toolbarpaletteitem > #alltabs-button[type=menu]:-moz-system-metric(windows-compositor):not(:-moz-lwtheme),
|
||||
:-moz-any(#TabsToolbar, #nav-bar[tabsontop=false], #toolbar-menubar) > #alltabs-button:-moz-system-metric(windows-compositor):not(:-moz-lwtheme),
|
||||
:-moz-any(#TabsToolbar, #nav-bar[tabsontop=false], #toolbar-menubar) > toolbarpaletteitem > #alltabs-button:-moz-system-metric(windows-compositor):not(:-moz-lwtheme),
|
||||
%endif
|
||||
#alltabs-button[type="menu"]:-moz-lwtheme-brighttext {
|
||||
#alltabs-button:-moz-lwtheme-brighttext {
|
||||
list-style-image: url("chrome://browser/skin/toolbarbutton-dropdown-arrow-inverted.png");
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] > .toolbarbutton-icon {
|
||||
#alltabs-button > .toolbarbutton-icon {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#alltabs-button[type="menu"] > .toolbarbutton-menu-dropmarker {
|
||||
#alltabs-button > .toolbarbutton-menu-dropmarker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -2426,25 +2420,6 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||
background-color: rgba(27%,27%,27%,.65);
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton {
|
||||
list-style-image: url(KUI-close.png);
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton:not(:hover) {
|
||||
opacity: .6;
|
||||
}
|
||||
|
||||
.KUI-panel-closebutton > .toolbarbutton-icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ::::: Ctrl-Tab and All Tabs Panels ::::: */
|
||||
|
||||
/* Ctrl-Tab */
|
||||
|
||||
#ctrlTab-panel {
|
||||
|
@ -2495,60 +2470,6 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||
margin-top: .5em;
|
||||
}
|
||||
|
||||
/* All Tabs */
|
||||
|
||||
#allTabs-panel {
|
||||
padding-bottom: 10px;
|
||||
-moz-appearance: none;
|
||||
border: none;
|
||||
background: -moz-dialog;
|
||||
color: -moz-dialogText;
|
||||
}
|
||||
|
||||
#allTabs-meta {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
#allTabs-filter {
|
||||
-moz-margin-start: 24px;
|
||||
-moz-margin-end: 0;
|
||||
}
|
||||
|
||||
#allTabs-tab-close-button > .toolbarbutton-icon {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.allTabs-favicon[src] {
|
||||
background-color: -moz-dialog;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 5px;
|
||||
-moz-padding-start: 1px;
|
||||
-moz-padding-end: 5px;
|
||||
margin-top: -2px;
|
||||
-moz-margin-start: -2px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
.allTabs-favicon[src]:-moz-locale-dir(rtl) {
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
|
||||
.allTabs-preview-inner > .tabPreview-canvas {
|
||||
background-color: rgb(60%,60%,60%);
|
||||
box-shadow: 0 0 1.5px ThreeDShadow;
|
||||
}
|
||||
|
||||
.allTabs-preview:not(:hover):not([closebuttonhover]) > html|canvas {
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
.allTabs-preview:focus > * > .allTabs-preview-inner {
|
||||
outline: 1px dotted -moz-dialogText;
|
||||
}
|
||||
|
||||
/* Add-on bar */
|
||||
|
||||
#addon-bar {
|
||||
|
|
|
@ -35,7 +35,6 @@ browser.jar:
|
|||
skin/classic/browser/identity-icons-https-mixed-active.png
|
||||
skin/classic/browser/keyhole-forward-mask.svg
|
||||
skin/classic/browser/KUI-background.png
|
||||
skin/classic/browser/KUI-close.png
|
||||
skin/classic/browser/livemark-folder.png
|
||||
skin/classic/browser/menu-back.png
|
||||
skin/classic/browser/menu-forward.png
|
||||
|
@ -119,7 +118,6 @@ browser.jar:
|
|||
skin/classic/browser/preferences/aboutPermissions.css (preferences/aboutPermissions.css)
|
||||
skin/classic/browser/social/social.png (social/social.png)
|
||||
skin/classic/browser/social/chat-close.png (social/chat-close.png)
|
||||
skin/classic/browser/tabbrowser/alltabs.png (tabbrowser/alltabs.png)
|
||||
skin/classic/browser/tabbrowser/newtab.png (tabbrowser/newtab.png)
|
||||
skin/classic/browser/tabbrowser/newtab-inverted.png (tabbrowser/newtab-inverted.png)
|
||||
skin/classic/browser/tabbrowser/connecting.png (tabbrowser/connecting.png)
|
||||
|
@ -264,7 +262,6 @@ browser.jar:
|
|||
skin/classic/aero/browser/identity-icons-https-mixed-active.png
|
||||
skin/classic/aero/browser/keyhole-forward-mask.svg
|
||||
skin/classic/aero/browser/KUI-background.png
|
||||
skin/classic/aero/browser/KUI-close.png
|
||||
skin/classic/aero/browser/livemark-folder.png (livemark-folder-aero.png)
|
||||
skin/classic/aero/browser/menu-back.png (menu-back-aero.png)
|
||||
skin/classic/aero/browser/menu-forward.png (menu-forward-aero.png)
|
||||
|
@ -348,7 +345,6 @@ browser.jar:
|
|||
skin/classic/aero/browser/preferences/aboutPermissions.css (preferences/aboutPermissions.css)
|
||||
skin/classic/aero/browser/social/social.png (social/social.png)
|
||||
skin/classic/aero/browser/social/chat-close.png (social/chat-close.png)
|
||||
skin/classic/aero/browser/tabbrowser/alltabs.png (tabbrowser/alltabs.png)
|
||||
skin/classic/aero/browser/tabbrowser/newtab.png (tabbrowser/newtab.png)
|
||||
skin/classic/aero/browser/tabbrowser/newtab-inverted.png (tabbrowser/newtab-inverted.png)
|
||||
skin/classic/aero/browser/tabbrowser/connecting.png (tabbrowser/connecting.png)
|
||||
|
|
Двоичные данные
browser/themes/winstripe/tabbrowser/alltabs.png
Двоичные данные
browser/themes/winstripe/tabbrowser/alltabs.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 584 B |
Загрузка…
Ссылка в новой задаче