タブバー内にtab以外の要素があっても大丈夫なように修正
(see https://bugzilla.mozilla.org/show_bug.cgi?id=457651 ) git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@3526 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
parent
e064129e80
commit
3daf386334
@ -10,7 +10,7 @@ window.addEventListener('load', function() {
|
|||||||
if (!doReplace &&
|
if (!doReplace &&
|
||||||
TreeStyleTabService.getTreePref('openGroupBookmarkAsTabSubTree') &&
|
TreeStyleTabService.getTreePref('openGroupBookmarkAsTabSubTree') &&
|
||||||
!browser.treeStyleTab.parentTab) {
|
!browser.treeStyleTab.parentTab) {
|
||||||
browser.treeStyleTab.partTab(browser.mTabContainer.childNodes[index]);
|
browser.treeStyleTab.partTab(browser.treeStyleTab.getTabs(browser).snapshotItem(index));
|
||||||
TreeStyleTabService.readyToOpenChildTab($1, true);
|
TreeStyleTabService.readyToOpenChildTab($1, true);
|
||||||
}
|
}
|
||||||
]]></>
|
]]></>
|
||||||
|
@ -539,7 +539,7 @@ TreeStyleTabService.overrideExtensionsOnInitAfter = function() {
|
|||||||
|
|
||||||
window.setTimeout(function() {
|
window.setTimeout(function() {
|
||||||
// correct broken appearance of the first tab
|
// correct broken appearance of the first tab
|
||||||
var t = gBrowser.mTabContainer.firstChild;
|
var t = gBrowser.treeStyleTab.getTabs(gBrowser).snapshotItem(0);
|
||||||
gBrowser.treeStyleTab.initTabAttributes(t);
|
gBrowser.treeStyleTab.initTabAttributes(t);
|
||||||
gBrowser.treeStyleTab.initTabContentsOrder(t);
|
gBrowser.treeStyleTab.initTabContentsOrder(t);
|
||||||
|
|
||||||
|
@ -445,11 +445,13 @@ var TreeStyleTabService = {
|
|||||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||||
.getInterface(Components.interfaces.nsIWebNavigation)
|
.getInterface(Components.interfaces.nsIWebNavigation)
|
||||||
.QueryInterface(Components.interfaces.nsIDocShell);
|
.QueryInterface(Components.interfaces.nsIDocShell);
|
||||||
var tabs = b.mTabContainer.childNodes;
|
var tabs = this.getTabs(b);
|
||||||
for (var i = 0, maxi = tabs.length; i < maxi; i++)
|
var tab;
|
||||||
|
for (var i = 0, maxi = tabs.snapshotLength; i < maxi; i++)
|
||||||
{
|
{
|
||||||
if (tabs[i].linkedBrowser.docShell == docShell)
|
tab = tabs.snapshotItem(i);
|
||||||
return tabs[i];
|
if (tab.linkedBrowser.docShell == docShell)
|
||||||
|
return tab;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
@ -507,6 +509,25 @@ var TreeStyleTabService = {
|
|||||||
return frame;
|
return frame;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getTabs : function(aTabBrowser)
|
||||||
|
{
|
||||||
|
return this.evaluateXPath(
|
||||||
|
'descendant::xul:tab',
|
||||||
|
aTabBrowser.mTabContainer
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
getTabsArray : function(aTabBrowser)
|
||||||
|
{
|
||||||
|
var tabs = this.getTabs(aTabBrowser);
|
||||||
|
var array = [];
|
||||||
|
for (var i = 0, maxi = tabs.snapshotLength; i < maxi)
|
||||||
|
{
|
||||||
|
array.push(tabs.snapshotItem(i));
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
},
|
||||||
|
|
||||||
makeNewId : function()
|
makeNewId : function()
|
||||||
{
|
{
|
||||||
return 'tab-<'+Date.now()+'-'+parseInt(Math.random() * 65000)+'>';
|
return 'tab-<'+Date.now()+'-'+parseInt(Math.random() * 65000)+'>';
|
||||||
@ -571,6 +592,24 @@ var TreeStyleTabService = {
|
|||||||
).singleNodeValue;
|
).singleNodeValue;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getNextTab : function(aTab)
|
||||||
|
{
|
||||||
|
var xpathResult = this.evaluateXPath(
|
||||||
|
'following-sibling::xul:tab',
|
||||||
|
aTab
|
||||||
|
);
|
||||||
|
return xpathResult.snapshotItem(0);
|
||||||
|
},
|
||||||
|
|
||||||
|
getPreviousTab : function(aTab)
|
||||||
|
{
|
||||||
|
var xpathResult = this.evaluateXPath(
|
||||||
|
'preceding-sibling::xul:tab',
|
||||||
|
aTab
|
||||||
|
);
|
||||||
|
return xpathResult.snapshotItem(xpathResult.snapshotLength-1);
|
||||||
|
},
|
||||||
|
|
||||||
getNextVisibleTab : function(aTab)
|
getNextVisibleTab : function(aTab)
|
||||||
{
|
{
|
||||||
var xpathResult = this.evaluateXPath(
|
var xpathResult = this.evaluateXPath(
|
||||||
@ -661,7 +700,9 @@ var TreeStyleTabService = {
|
|||||||
do {
|
do {
|
||||||
next = next.nextSibling;
|
next = next.nextSibling;
|
||||||
}
|
}
|
||||||
while (next && this.getParentTab(next));
|
while (next &&
|
||||||
|
next.nodeType == Node.ELEMENT_NODE &&
|
||||||
|
this.getParentTab(next));
|
||||||
return next;
|
return next;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -688,7 +729,9 @@ var TreeStyleTabService = {
|
|||||||
do {
|
do {
|
||||||
prev = prev.previousSibling;
|
prev = prev.previousSibling;
|
||||||
}
|
}
|
||||||
while (prev && this.getParentTab(prev));
|
while (prev &&
|
||||||
|
prev.nodeType == Node.ELEMENT_NODE &&
|
||||||
|
this.getParentTab(prev));
|
||||||
return prev;
|
return prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1119,8 +1162,7 @@ catch(e) {
|
|||||||
'!TreeStyleTabService.getTabFromEvent(aEvent)'
|
'!TreeStyleTabService.getTabFromEvent(aEvent)'
|
||||||
).replace(
|
).replace(
|
||||||
'var tab = aEvent.target;',
|
'var tab = aEvent.target;',
|
||||||
<><![CDATA[
|
<><![CDATA[$&
|
||||||
var tab = aEvent.target;
|
|
||||||
if (
|
if (
|
||||||
tab.getAttribute('locked') == 'true' || // Tab Mix Plus
|
tab.getAttribute('locked') == 'true' || // Tab Mix Plus
|
||||||
TreeStyleTabService.getTreePref('loadDroppedLinkToNewChildTab') ||
|
TreeStyleTabService.getTreePref('loadDroppedLinkToNewChildTab') ||
|
||||||
@ -1509,7 +1551,7 @@ catch(e) {
|
|||||||
|
|
||||||
this.accelKeyPressed = this.isAccelKeyPressed(aEvent);
|
this.accelKeyPressed = this.isAccelKeyPressed(aEvent);
|
||||||
if (
|
if (
|
||||||
b.mTabContainer.childNodes.length > 1 &&
|
this.getTabs(b).snapshotLength > 1 &&
|
||||||
!aEvent.altKey &&
|
!aEvent.altKey &&
|
||||||
this.accelKeyPressed
|
this.accelKeyPressed
|
||||||
) {
|
) {
|
||||||
|
@ -123,8 +123,6 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.mTabContainer.addEventListener('select', this, true);
|
b.mTabContainer.addEventListener('select', this, true);
|
||||||
b.mTabContainer.addEventListener('scroll', this, true);
|
b.mTabContainer.addEventListener('scroll', this, true);
|
||||||
|
|
||||||
var selectNewTab = '_selectNewTab' in b.mTabContainer ? '_selectNewTab' : 'selectNewTab' ; // Fx3 / Fx2
|
|
||||||
|
|
||||||
|
|
||||||
/* Closing collapsed last tree breaks selected tab.
|
/* Closing collapsed last tree breaks selected tab.
|
||||||
To solve this problem, I override the setter to
|
To solve this problem, I override the setter to
|
||||||
@ -133,7 +131,12 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var setter = b.__lookupSetter__('selectedTab');
|
var setter = b.__lookupSetter__('selectedTab');
|
||||||
eval('setter = '+setter.toSource().replace(
|
eval('setter = '+setter.toSource().replace(
|
||||||
'{',
|
'{',
|
||||||
'{ if (!val) val = this.mTabContainer.lastChild;'
|
<![CDATA[$&
|
||||||
|
if (!val) {
|
||||||
|
var tabs = TreeStyleTabService.getTabs(this)
|
||||||
|
val = tabs.snapshotItem(tabs.snapshotLength-1);
|
||||||
|
}
|
||||||
|
]]>.toString()
|
||||||
));
|
));
|
||||||
/* We have to use both __defineSetter__ and __defineGetter__
|
/* We have to use both __defineSetter__ and __defineGetter__
|
||||||
just in same time!! If we update only setter,
|
just in same time!! If we update only setter,
|
||||||
@ -142,6 +145,9 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.__defineSetter__('selectedTab', setter);
|
b.__defineSetter__('selectedTab', setter);
|
||||||
|
|
||||||
|
|
||||||
|
var selectNewTab = '_selectNewTab' in b.mTabContainer ?
|
||||||
|
'_selectNewTab' : // Firefox 3
|
||||||
|
'selectNewTab' ; // Firefox 2
|
||||||
eval('b.mTabContainer.'+selectNewTab+' = '+
|
eval('b.mTabContainer.'+selectNewTab+' = '+
|
||||||
b.mTabContainer[selectNewTab].toSource().replace(
|
b.mTabContainer[selectNewTab].toSource().replace(
|
||||||
'{',
|
'{',
|
||||||
@ -419,10 +425,10 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
var tabs = b.mTabContainer.childNodes;
|
var tabs = this.getTabs(b);
|
||||||
for (var i = 0, maxi = tabs.length; i < maxi; i++)
|
for (var i = 0, maxi = tabs.snapshotLength; i < maxi; i++)
|
||||||
{
|
{
|
||||||
this.initTab(tabs[i]);
|
this.initTab(tabs.snapshotItem(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.observe(null, 'nsPref:changed', 'extensions.treestyletab.tabbar.style');
|
this.observe(null, 'nsPref:changed', 'extensions.treestyletab.tabbar.style');
|
||||||
@ -467,7 +473,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
item.setAttribute('id', item.getAttribute('id')+suffix);
|
item.setAttribute('id', item.getAttribute('id')+suffix);
|
||||||
var refNodes = tabContext.getElementsByAttribute('command', 'Browser:BookmarkAllTabs');
|
var refNodes = tabContext.getElementsByAttribute('command', 'Browser:BookmarkAllTabs');
|
||||||
if (refNodes && refNodes.length)
|
if (refNodes && refNodes.length)
|
||||||
tabContext.insertBefore(item, refNodes[0].nextSibling || refNodes[0]);
|
tabContext.insertBefore(item, this.getNextTab(refNodes[0]) || refNodes[0]);
|
||||||
else
|
else
|
||||||
tabContext.appendChild(item);
|
tabContext.appendChild(item);
|
||||||
}, 0, this);
|
}, 0, this);
|
||||||
@ -627,7 +633,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
window.setTimeout(function(aSelf) {
|
window.setTimeout(function(aSelf) {
|
||||||
var b = aSelf.mTabBrowser;
|
var b = aSelf.mTabBrowser;
|
||||||
if (aAll) {
|
if (aAll) {
|
||||||
Array.slice(b.mTabContainer.childNodes).forEach(function(aTab) {
|
aSelf.getTabsArray(b).forEach(function(aTab) {
|
||||||
aSelf.initTabContentsOrder(aTab);
|
aSelf.initTabContentsOrder(aTab);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -820,10 +826,10 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
|
|
||||||
var b = this.mTabBrowser;
|
var b = this.mTabBrowser;
|
||||||
|
|
||||||
var tabs = b.mTabContainer.childNodes;
|
var tabs = this.getTabs(b);
|
||||||
for (var i = 0, maxi = tabs.length; i < maxi; i++)
|
for (var i = 0, maxi = tabs.snapshotLength; i < maxi; i++)
|
||||||
{
|
{
|
||||||
this.destroyTab(tabs[i]);
|
this.destroyTab(tabs.snapshotItem(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
b.removeEventListener('TabOpen', this, true);
|
b.removeEventListener('TabOpen', this, true);
|
||||||
@ -889,7 +895,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
case 'nsPref:changed':
|
case 'nsPref:changed':
|
||||||
var value = this.getPref(aData);
|
var value = this.getPref(aData);
|
||||||
var tabContainer = b.mTabContainer;
|
var tabContainer = b.mTabContainer;
|
||||||
var tabs = Array.slice(tabContainer.childNodes);
|
var tabs = this.getTabsArray(b);
|
||||||
switch (aData)
|
switch (aData)
|
||||||
{
|
{
|
||||||
case 'extensions.treestyletab.tabbar.position':
|
case 'extensions.treestyletab.tabbar.position':
|
||||||
@ -1312,7 +1318,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.removeTab(descendant[i]);
|
b.removeTab(descendant[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (b.mTabContainer.childNodes.length == 1) { // this is the last tab
|
if (this.getTabs(b).snapshotLength == 1) { // this is the last tab
|
||||||
b.addTab('about:blank');
|
b.addTab('about:blank');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1332,7 +1338,8 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var attach = this.getTreePref('attachChildrenToGrandParentOnRemoveTab');
|
var attach = this.getTreePref('attachChildrenToGrandParentOnRemoveTab');
|
||||||
var processTab = !attach ? function(aTab) {
|
var processTab = !attach ? function(aTab) {
|
||||||
self.partTab(aTab, true);
|
self.partTab(aTab, true);
|
||||||
self.moveTabSubTreeTo(aTab, b.mTabContainer.lastChild._tPos);
|
var tabs = self.getTabs(b);
|
||||||
|
self.moveTabSubTreeTo(aTab, tabs.snapshotItem(tabs.snapshotLength-1)._tPos);
|
||||||
} :
|
} :
|
||||||
parentTab ? function(aTab) {
|
parentTab ? function(aTab) {
|
||||||
self.attachTabTo(aTab, parentTab, {
|
self.attachTabTo(aTab, parentTab, {
|
||||||
@ -1436,7 +1443,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
if (aOldPosition === void(0)) aOldPosition = aTab._tPos;
|
if (aOldPosition === void(0)) aOldPosition = aTab._tPos;
|
||||||
|
|
||||||
var pos = this.getChildIndex(aTab, parent);
|
var pos = this.getChildIndex(aTab, parent);
|
||||||
var oldPos = this.getChildIndex(this.mTabBrowser.mTabContainer.childNodes[aOldPosition], parent);
|
var oldPos = this.getChildIndex(this.getTabs(this.mTabBrowser).snapshotItem(aOldPosition), parent);
|
||||||
var delta;
|
var delta;
|
||||||
if (pos == oldPos) { // no move?
|
if (pos == oldPos) { // no move?
|
||||||
return;
|
return;
|
||||||
@ -1448,12 +1455,12 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
delta = Math.abs(pos - oldPos);
|
delta = Math.abs(pos - oldPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
var prevTab = aTab.previousSibling;
|
var prevTab = this.getPreviousTab(aTab);
|
||||||
var nextTab = aTab.nextSibling;
|
var nextTab = this.getNextTab(aTab);
|
||||||
|
|
||||||
var tabs = this.getDescendantTabs(aTab);
|
var tabs = this.getDescendantTabs(aTab);
|
||||||
if (tabs.length) {
|
if (tabs.length) {
|
||||||
nextTab = tabs[tabs.length-1].nextSibling;
|
nextTab = this.getNextTab(tabs[tabs.length-1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var prevParent = this.getParentTab(prevTab);
|
var prevParent = this.getParentTab(prevTab);
|
||||||
@ -1478,7 +1485,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
newParent = realDelta < 2 ? prevParent : parent ;
|
newParent = realDelta < 2 ? prevParent : parent ;
|
||||||
}
|
}
|
||||||
else if (prevLevel < nextLevel) {
|
else if (prevLevel < nextLevel) {
|
||||||
newParent = aTab.previousSibling;
|
newParent = this.getParentTab(aTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newParent != parent) {
|
if (newParent != parent) {
|
||||||
@ -1602,7 +1609,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
|
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
nextTab = this.getTabById(nextTab);
|
nextTab = this.getTabById(nextTab);
|
||||||
if (!nextTab) nextTab = tab.nextSibling;
|
if (!nextTab) nextTab = this.getNextTab(tab);
|
||||||
var parentOfNext = this.getParentTab(nextTab);
|
var parentOfNext = this.getParentTab(nextTab);
|
||||||
var newPos = -1;
|
var newPos = -1;
|
||||||
if (parentOfNext) {
|
if (parentOfNext) {
|
||||||
@ -1701,7 +1708,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
|
|
||||||
var tab = null;
|
var tab = null;
|
||||||
var clickedPoint = aEvent[this.positionProp];
|
var clickedPoint = aEvent[this.positionProp];
|
||||||
Array.slice(this.mTabBrowser.mTabContainer.childNodes).some(function(aTab) {
|
this.getTabsArray(this.mTabBrowser).some(function(aTab) {
|
||||||
var box = aTab.boxObject;
|
var box = aTab.boxObject;
|
||||||
if (box[this.positionProp] > clickedPoint ||
|
if (box[this.positionProp] > clickedPoint ||
|
||||||
box[this.positionProp] + box[this.sizeProp] < clickedPoint) {
|
box[this.positionProp] + box[this.sizeProp] < clickedPoint) {
|
||||||
@ -1896,10 +1903,10 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
{
|
{
|
||||||
if (!this.getTreePref('enableSubtreeIndent.allTabsPopup')) return;
|
if (!this.getTreePref('enableSubtreeIndent.allTabsPopup')) return;
|
||||||
var items = aEvent.target.childNodes;
|
var items = aEvent.target.childNodes;
|
||||||
var tabs = this.mTabBrowser.mTabContainer.childNodes;
|
var tabs = this.getTabs(this.mTabBrowser);
|
||||||
for (var i = 0, maxi = items.length; i < maxi; i++)
|
for (var i = 0, maxi = items.length; i < maxi; i++)
|
||||||
{
|
{
|
||||||
items[i].style.paddingLeft = tabs[i].getAttribute(this.kNEST)+'em';
|
items[i].style.paddingLeft = tabs.snapshotItem(i).getAttribute(this.kNEST)+'em';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -2089,7 +2096,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
{
|
{
|
||||||
var tab = aEvent.target;
|
var tab = aEvent.target;
|
||||||
var b = this.mTabBrowser;
|
var b = this.mTabBrowser;
|
||||||
var tabs = b.mTabContainer.childNodes;
|
var tabs = this.getTabsArray(b);
|
||||||
var isInverted = this.isVertical ? false : window.getComputedStyle(b.parentNode, null).direction == 'rtl';
|
var isInverted = this.isVertical ? false : window.getComputedStyle(b.parentNode, null).direction == 'rtl';
|
||||||
var info = {
|
var info = {
|
||||||
target : null,
|
target : null,
|
||||||
@ -2213,7 +2220,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var draggedRoots = tabsInfo.draggedRoots;
|
var draggedRoots = tabsInfo.draggedRoots;
|
||||||
|
|
||||||
var targetBrowser = this.mTabBrowser;
|
var targetBrowser = this.mTabBrowser;
|
||||||
var tabs = targetBrowser.mTabContainer.childNodes;
|
var tabs = this.getTabsArray(targetBrowser);
|
||||||
|
|
||||||
var sourceWindow = aDraggedTab.ownerDocument.defaultView;
|
var sourceWindow = aDraggedTab.ownerDocument.defaultView;
|
||||||
var sourceBrowser = this.getTabBrowserFromChild(aDraggedTab);
|
var sourceBrowser = this.getTabBrowserFromChild(aDraggedTab);
|
||||||
@ -2247,7 +2254,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var newRoots = [];
|
var newRoots = [];
|
||||||
var shouldClose = (
|
var shouldClose = (
|
||||||
aInfo.action & this.kACTION_IMPORT &&
|
aInfo.action & this.kACTION_IMPORT &&
|
||||||
sourceBrowser.mTabContainer.childNodes.length == draggedTabs.length
|
this.getTabs(sourceBrowser).snapshotLength == draggedTabs.length
|
||||||
);
|
);
|
||||||
var oldTabs = [];
|
var oldTabs = [];
|
||||||
var newTabs = [];
|
var newTabs = [];
|
||||||
@ -2323,7 +2330,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
aTab = this.getTabFromChild(aTab);
|
aTab = this.getTabFromChild(aTab);
|
||||||
|
|
||||||
var targetBrowser = this.mTabBrowser;
|
var targetBrowser = this.mTabBrowser;
|
||||||
var tabs = targetBrowser.mTabContainer.childNodes;
|
var tabs = this.getTabsArray(targetBrowser);
|
||||||
|
|
||||||
var draggedTabs = [aTab];
|
var draggedTabs = [aTab];
|
||||||
var draggedRoots = [aTab];
|
var draggedRoots = [aTab];
|
||||||
@ -2425,7 +2432,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
action : this.kACTIONS_FOR_DESTINATION | this.kACTION_IMPORT
|
action : this.kACTIONS_FOR_DESTINATION | this.kACTION_IMPORT
|
||||||
};
|
};
|
||||||
var tabsInfo = this.getDraggedTabsInfoFromOneTab(actionInfo, aTab);
|
var tabsInfo = this.getDraggedTabsInfoFromOneTab(actionInfo, aTab);
|
||||||
return tabsInfo.draggedTabs.length == this.mTabBrowser.mTabContainer.childNodes.length;
|
return tabsInfo.draggedTabs.length == this.getTabs(this.mTabBrowser).snapshotLength;
|
||||||
},
|
},
|
||||||
|
|
||||||
/* commands */
|
/* commands */
|
||||||
@ -2644,7 +2651,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var oldMargin = this.levelMargin;
|
var oldMargin = this.levelMargin;
|
||||||
var indent = (oldMargin < 0 ? this.baseLebelMargin : oldMargin ) * nest;
|
var indent = (oldMargin < 0 ? this.baseLebelMargin : oldMargin ) * nest;
|
||||||
var maxIndent = (
|
var maxIndent = (
|
||||||
b.mTabContainer.childNodes[0].boxObject[this.invertedSizeProp] ||
|
this.getTabs(b).snapshotItem(0).boxObject[this.invertedSizeProp] ||
|
||||||
b.mTabContainer.boxObject[this.invertedSizeProp]
|
b.mTabContainer.boxObject[this.invertedSizeProp]
|
||||||
) * 0.33;
|
) * 0.33;
|
||||||
|
|
||||||
@ -2730,7 +2737,8 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
b.moveTabTo(b.mCurrentTab, nextTab._tPos - 1);
|
b.moveTabTo(b.mCurrentTab, nextTab._tPos - 1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
b.moveTabTo(b.mCurrentTab, b.mTabContainer.lastChild._tPos);
|
var tabs = this.getTabs(b);
|
||||||
|
b.moveTabTo(b.mCurrentTab, tabs.snapshotItem(tabs.snapshotLength-1)._tPos);
|
||||||
}
|
}
|
||||||
this.internallyTabMoving = false;
|
this.internallyTabMoving = false;
|
||||||
b.mCurrentTab.focus();
|
b.mCurrentTab.focus();
|
||||||
@ -2996,7 +3004,7 @@ TreeStyleTabBrowser.prototype = {
|
|||||||
var tabSize = lastVisible.boxObject[this.sizeProp];
|
var tabSize = lastVisible.boxObject[this.sizeProp];
|
||||||
|
|
||||||
if (lastPosition - parentPosition + tabSize > containerSize - tabSize) { // out of screen
|
if (lastPosition - parentPosition + tabSize > containerSize - tabSize) { // out of screen
|
||||||
var endPos = parentPosition - b.mTabContainer.firstChild.boxObject[this.positionProp] - tabSize * 0.5;
|
var endPos = parentPosition - this.getTabs(b).snapshotItem(0).boxObject[this.positionProp] - tabSize * 0.5;
|
||||||
var endX = this.isVertical ? 0 : endPos ;
|
var endX = this.isVertical ? 0 : endPos ;
|
||||||
var endY = this.isVertical ? endPos : 0 ;
|
var endY = this.isVertical ? endPos : 0 ;
|
||||||
this.scrollTo(endX, endY);
|
this.scrollTo(endX, endY);
|
||||||
|
Loading…
Reference in New Issue
Block a user