タブバーの幅や高さがウィンドウの大きさをなるべく超えないようにした

git-svn-id: http://www.cozmixng.org/repos/piro/treestyletab/trunk@6605 599a83e7-65a4-db11-8015-0010dcdd6dc2
This commit is contained in:
piro 2010-04-22 08:12:31 +00:00
parent 6844c180e8
commit 3e349f09bb
3 changed files with 35 additions and 10 deletions

View File

@ -108,6 +108,30 @@ var TreeStyleTabService = {
{
return window.gToolbox && gToolbox.customizing;
},
maxTabbarWidth : function TSTService_maxTabbarWidth(aWidth, aTabBrowser)
{
aTabBrowser = aTabBrowser || this.browser;
return Math.min(
aWidth,
parseInt(Math.min(
window.innerWidth,
aTabBrowser.boxObject.width
) * 0.9)
);
},
maxTabbarHeight : function TSTService_maxTabbarHeight(aHeight, aTabBrowser)
{
aTabBrowser = aTabBrowser || this.browser;
return Math.min(
aHeight,
parseInt(Math.min(
window.innerHeight,
aTabBrowser.boxObject.height
) * 0.9)
);
},
/* Initializing */
@ -1443,13 +1467,13 @@ catch(e) {
window.setTimeout(function(aSelf) {
if (!b.treeStyleTab.clickedOnTabbarResizerGrippy) {
if (!b.treeStyleTab.isVertical) {
aSelf.setTreePref('tabbar.height', box.height);
aSelf.setTreePref('tabbar.height', aSelf.maxTabbarHeight(box.height, b));
}
else {
if (!b.treeStyleTab.autoHide.expanded)
aSelf.setTreePref('tabbar.shrunkenWidth', box.width);
aSelf.setTreePref('tabbar.shrunkenWidth', aSelf.maxTabbarWidth(box.width, b));
else
aSelf.setTreePref('tabbar.width', box.width);
aSelf.setTreePref('tabbar.width', aSelf.maxTabbarWidth(box.width, b));
}
}
b.treeStyleTab.updateFloatingTabbar();
@ -1559,7 +1583,7 @@ catch(e) {
}, 250, this);
},
updateAeroPeekPreviewsTimer : null,
updateAeroPeekPreviewsInternal : function TSTService_updateAeroPeekPreviewsInternal()
updateAeroPeekPreviewsInternal : function TSTService_updateAeroPeekPreviewsInternal()
{
this.AeroPeek.windows.some(function(aTabWindow) {
if (aTabWindow.win == window) {

View File

@ -942,7 +942,8 @@ TreeStyleTabBrowser.prototype = {
this.setTabbrowserAttribute(this.kMODE, 'vertical');
this.setTabStripAttribute('width', this.getTreePref('tabbar.width'));
let width = this.maxTabbarWidth(this.getTreePref('tabbar.width'), b);
this.setTabStripAttribute('width', width);
this.removeTabStripAttribute('height');
b.mPanelContainer.removeAttribute('height');
@ -960,7 +961,7 @@ TreeStyleTabBrowser.prototype = {
/* in Firefox 3, the width of the rightside tab bar
unexpectedly becomes 0 on the startup. so, we have
to set the width again. */
aSelf.setTabStripAttribute('width', aSelf.getTreePref('tabbar.width'));
aSelf.setTabStripAttribute('width', width);
indicator.setAttribute('ordinal', 1);
aSelf.setTabStripAttribute('ordinal', 30);
aSplitter.setAttribute('ordinal', 20);
@ -1149,7 +1150,7 @@ TreeStyleTabBrowser.prototype = {
}
else {
this.removeTabbrowserAttribute(this.kFIXED, b);
this.setTabStripAttribute('height', this.getTreePref('tabbar.height'));
this.setTabStripAttribute('height', this.maxTabbarHeight(this.getTreePref('tabbar.height'), b));
if (toggleTabsOnTop)
toggleTabsOnTop.setAttribute('disabled', true);
}

View File

@ -370,9 +370,9 @@ TreeStyleTabBrowserAutoHide.prototype = {
if (aForceExpanded ||
this.expanded ||
this.mode != this.kMODE_SHRINK)
this.setTreePref('tabbar.width', aWidth);
this.setTreePref('tabbar.width', this.mOwner.maxTabbarWidth(aWidth));
else
this.setTreePref('tabbar.shrunkenWidth', aWidth);
this.setTreePref('tabbar.shrunkenWidth', this.mOwner.maxTabbarWidth(aWidth));
},
updateMenuItem : function TSTAutoHide_updateMenuItem(aNode)
@ -513,7 +513,7 @@ TreeStyleTabBrowserAutoHide.prototype = {
default:
case this.kMODE_SHRINK:
if (pos == 'left' || pos == 'right')
sv.setTabStripAttribute('width', this.getTreePref('tabbar.width'));
sv.setTabStripAttribute('width', sv.maxTabbarWidth(this.getTreePref('tabbar.width')));
break;
}
sv.updateFloatingTabbar(true);