remove regacy codes
This commit is contained in:
parent
bcb8615f47
commit
b44c9b20f9
@ -14,7 +14,7 @@
|
|||||||
* The Original Code is the Tree Style Tab.
|
* The Original Code is the Tree Style Tab.
|
||||||
*
|
*
|
||||||
* The Initial Developer of the Original Code is SHIMODA Hiroshi.
|
* The Initial Developer of the Original Code is SHIMODA Hiroshi.
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2010-2011
|
* Portions created by the Initial Developer are Copyright (C) 2010-2012
|
||||||
* the Initial Developer. All Rights Reserved.
|
* the Initial Developer. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Contributor(s): SHIMODA Hiroshi <piro.outsider.reflex@gmail.com>
|
* Contributor(s): SHIMODA Hiroshi <piro.outsider.reflex@gmail.com>
|
||||||
@ -212,21 +212,15 @@ AutoHideBrowser.prototype = {
|
|||||||
b.addEventListener('mouseup', this, true);
|
b.addEventListener('mouseup', this, true);
|
||||||
b.addEventListener('dragover', this, true);
|
b.addEventListener('dragover', this, true);
|
||||||
b.addEventListener('dragleave', this, true);
|
b.addEventListener('dragleave', this, true);
|
||||||
if (sv.isFloating) {
|
sv.tabStrip.addEventListener('mousedown', this, true);
|
||||||
sv.tabStrip.addEventListener('mousedown', this, true);
|
sv.tabStrip.addEventListener('mouseup', this, true);
|
||||||
sv.tabStrip.addEventListener('mouseup', this, true);
|
|
||||||
}
|
|
||||||
w.addEventListener('resize', this, true);
|
|
||||||
w.addEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_ENTERED, this, false);
|
w.addEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_ENTERED, this, false);
|
||||||
w.addEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_EXITED, this, false);
|
w.addEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_EXITED, this, false);
|
||||||
b.addEventListener('load', this, true);
|
|
||||||
b.mPanelContainer.addEventListener('scroll', this, true);
|
|
||||||
if (this.shouldListenMouseMove)
|
if (this.shouldListenMouseMove)
|
||||||
this.startListenMouseMove();
|
this.startListenMouseMove();
|
||||||
if (b == w.gBrowser && sv.shouldListenKeyEventsForAutoHide)
|
if (b == w.gBrowser && sv.shouldListenKeyEventsForAutoHide)
|
||||||
w.TreeStyleTabService.startListenKeyEventsFor(sv.LISTEN_FOR_AUTOHIDE);
|
w.TreeStyleTabService.startListenKeyEventsFor(sv.LISTEN_FOR_AUTOHIDE);
|
||||||
|
|
||||||
this.clearBG(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
this.updateTransparency();
|
this.updateTransparency();
|
||||||
|
|
||||||
this.showHideInternal();
|
this.showHideInternal();
|
||||||
@ -251,20 +245,14 @@ AutoHideBrowser.prototype = {
|
|||||||
b.removeEventListener('mouseup', this, true);
|
b.removeEventListener('mouseup', this, true);
|
||||||
b.removeEventListener('dragover', this, true);
|
b.removeEventListener('dragover', this, true);
|
||||||
b.removeEventListener('dragleave', this, true);
|
b.removeEventListener('dragleave', this, true);
|
||||||
if (sv.isFloating) {
|
sv.tabStrip.removeEventListener('mousedown', this, true);
|
||||||
sv.tabStrip.removeEventListener('mousedown', this, true);
|
sv.tabStrip.removeEventListener('mouseup', this, true);
|
||||||
sv.tabStrip.removeEventListener('mouseup', this, true);
|
|
||||||
}
|
|
||||||
w.removeEventListener('resize', this, true);
|
|
||||||
w.removeEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_ENTERED, this, false);
|
w.removeEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_ENTERED, this, false);
|
||||||
w.removeEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_EXITED, this, false);
|
w.removeEventListener(sv.kEVENT_TYPE_PRINT_PREVIEW_EXITED, this, false);
|
||||||
b.removeEventListener('load', this, true);
|
|
||||||
b.mPanelContainer.removeEventListener('scroll', this, true);
|
|
||||||
this.endListenMouseMove();
|
this.endListenMouseMove();
|
||||||
if (b == w.gBrowser)
|
if (b == w.gBrowser)
|
||||||
w.TreeStyleTabService.endListenKeyEventsFor(sv.LISTEN_FOR_AUTOHIDE);
|
w.TreeStyleTabService.endListenKeyEventsFor(sv.LISTEN_FOR_AUTOHIDE);
|
||||||
|
|
||||||
this.clearBG(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
this.updateTransparency();
|
this.updateTransparency();
|
||||||
|
|
||||||
if (!sv.isFloating)
|
if (!sv.isFloating)
|
||||||
@ -450,14 +438,12 @@ AutoHideBrowser.prototype = {
|
|||||||
var sv = this.treeStyleTab;
|
var sv = this.treeStyleTab;
|
||||||
var b = this.browser;
|
var b = this.browser;
|
||||||
var box = b.mCurrentBrowser.boxObject;
|
var box = b.mCurrentBrowser.boxObject;
|
||||||
if (sv.isFloating && this.expanded) { // Firefox 4.0-
|
box = {
|
||||||
box = {
|
screenX : box.screenX + (sv.position == 'left' ? this.XOffset : 0 ),
|
||||||
screenX : box.screenX + (sv.position == 'left' ? this.XOffset : 0 ),
|
screenY : box.screenY,
|
||||||
screenY : box.screenY,
|
width : box.width - this.XOffset,
|
||||||
width : box.width - this.XOffset,
|
height : box.height
|
||||||
height : box.height
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
return box;
|
return box;
|
||||||
},
|
},
|
||||||
MOUSE_POSITION_UNKNOWN : 0,
|
MOUSE_POSITION_UNKNOWN : 0,
|
||||||
@ -650,17 +636,13 @@ AutoHideBrowser.prototype = {
|
|||||||
|
|
||||||
showHideInternal : function AHB_showHideInternal(aReason)
|
showHideInternal : function AHB_showHideInternal(aReason)
|
||||||
{
|
{
|
||||||
var sv = this.treeStyleTab;
|
var sv = this.treeStyleTab;
|
||||||
if (!sv.isFloating)
|
|
||||||
sv.stopRendering();
|
|
||||||
|
|
||||||
var b = this.browser;
|
var b = this.browser;
|
||||||
var pos = sv.position;
|
var pos = sv.position;
|
||||||
|
|
||||||
if (this.expanded) { // to be hidden or shrunken
|
if (this.expanded) { // to be hidden or shrunken
|
||||||
this.onHiding();
|
this.onHiding();
|
||||||
this.showHideReason = aReason || this.kSHOWN_BY_UNKNOWN;
|
this.showHideReason = aReason || this.kSHOWN_BY_UNKNOWN;
|
||||||
this.resetContentAreas(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
}
|
}
|
||||||
else { // to be shown or expanded
|
else { // to be shown or expanded
|
||||||
this.onShowing();
|
this.onShowing();
|
||||||
@ -669,19 +651,13 @@ AutoHideBrowser.prototype = {
|
|||||||
|
|
||||||
this.fireStateChangingEvent();
|
this.fireStateChangingEvent();
|
||||||
|
|
||||||
if (this.expanded) {
|
if (this.expanded)
|
||||||
sv.setTabbrowserAttribute(this.kAUTOHIDE, 'show');
|
sv.setTabbrowserAttribute(this.kAUTOHIDE, 'show');
|
||||||
this.redrawContentArea(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
}
|
|
||||||
b.mTabContainer.adjustTabstrip();
|
b.mTabContainer.adjustTabstrip();
|
||||||
sv.checkTabsIndentOverflow();
|
sv.checkTabsIndentOverflow();
|
||||||
|
|
||||||
this.window.setTimeout(function(aSelf) {
|
this.window.setTimeout(function(aSelf) {
|
||||||
aSelf.redrawContentArea(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
aSelf.fireStateChangeEvent();
|
aSelf.fireStateChangeEvent();
|
||||||
if (!sv.isFloating)
|
|
||||||
sv.startRendering();
|
|
||||||
|
|
||||||
aSelf.showHideContentsAreaScreen();
|
aSelf.showHideContentsAreaScreen();
|
||||||
}, 0, this);
|
}, 0, this);
|
||||||
},
|
},
|
||||||
@ -735,23 +711,6 @@ AutoHideBrowser.prototype = {
|
|||||||
var sv = this.treeStyleTab;
|
var sv = this.treeStyleTab;
|
||||||
var b = this.browser;
|
var b = this.browser;
|
||||||
var pos = sv.position;
|
var pos = sv.position;
|
||||||
if (!sv.isFloating) { // -Firefox 3.6
|
|
||||||
switch (pos)
|
|
||||||
{
|
|
||||||
case 'left':
|
|
||||||
sv.container.style.marginRight = '-'+this.XOffset+'px';
|
|
||||||
break;
|
|
||||||
case 'right':
|
|
||||||
sv.container.style.marginLeft = '-'+this.XOffset+'px';
|
|
||||||
break;
|
|
||||||
case 'bottom':
|
|
||||||
sv.container.style.marginTop = '-'+this.YOffset+'px';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sv.container.style.marginBottom = '-'+this.YOffset+'px';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sv.setTabbrowserAttribute(this.kSTATE, this.kSTATE_EXPANDED);
|
sv.setTabbrowserAttribute(this.kSTATE, this.kSTATE_EXPANDED);
|
||||||
|
|
||||||
@ -761,18 +720,14 @@ AutoHideBrowser.prototype = {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case this.kMODE_HIDE:
|
case this.kMODE_HIDE:
|
||||||
if (sv.isFloating)
|
sv.updateFloatingTabbar(sv.kTABBAR_UPDATE_BY_AUTOHIDE);
|
||||||
sv.updateFloatingTabbar(sv.kTABBAR_UPDATE_BY_AUTOHIDE);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case this.kMODE_SHRINK:
|
case this.kMODE_SHRINK:
|
||||||
if (pos == 'left' || pos == 'right') {
|
if (pos == 'left' || pos == 'right') {
|
||||||
let width = sv.maxTabbarWidth(sv.getTreePref('tabbar.width'));
|
let width = sv.maxTabbarWidth(sv.getTreePref('tabbar.width'));
|
||||||
if (sv.isFloating) // Firefox 4.0-
|
sv.updateFloatingTabbar(sv.kTABBAR_UPDATE_BY_AUTOHIDE);
|
||||||
sv.updateFloatingTabbar(sv.kTABBAR_UPDATE_BY_AUTOHIDE);
|
|
||||||
else // -Firefox 3.6
|
|
||||||
sv.setTabStripAttribute('width', width);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -791,9 +746,6 @@ AutoHideBrowser.prototype = {
|
|||||||
var splitter = this.document.getAnonymousElementByAttribute(b, 'class', sv.kSPLITTER);
|
var splitter = this.document.getAnonymousElementByAttribute(b, 'class', sv.kSPLITTER);
|
||||||
this.splitterWidth = (splitter ? splitter.boxObject.width : 0 );
|
this.splitterWidth = (splitter ? splitter.boxObject.width : 0 );
|
||||||
|
|
||||||
if (!sv.isFloating) // -Firefox 3.6
|
|
||||||
sv.container.style.margin = 0;
|
|
||||||
|
|
||||||
switch (this.mode)
|
switch (this.mode)
|
||||||
{
|
{
|
||||||
case this.kMODE_DISABLED:
|
case this.kMODE_DISABLED:
|
||||||
@ -846,243 +798,8 @@ AutoHideBrowser.prototype = {
|
|||||||
this.treeStyleTab.fireDataContainerEvent(this.treeStyleTab.kEVENT_TYPE_AUTO_HIDE_STATE_CHANGE.replace(/^nsDOM/, ''), this.browser, true, false, data);
|
this.treeStyleTab.fireDataContainerEvent(this.treeStyleTab.kEVENT_TYPE_AUTO_HIDE_STATE_CHANGE.replace(/^nsDOM/, ''), this.browser, true, false, data);
|
||||||
},
|
},
|
||||||
|
|
||||||
redrawContentArea : function AHB_redrawContentArea() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var sv = this.treeStyleTab;
|
|
||||||
if (sv.isFloating)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var pos = sv.position;
|
|
||||||
var w = this.window;
|
|
||||||
try {
|
|
||||||
var v = this.browser.markupDocumentViewer;
|
|
||||||
if (this.shouldRedraw) {
|
|
||||||
this.drawBG();
|
|
||||||
|
|
||||||
v.move(w.outerWidth, w.outerHeight);
|
|
||||||
v.move(
|
|
||||||
(
|
|
||||||
pos == 'left' ? -this.XOffset :
|
|
||||||
pos == 'right' ? this.XOffset :
|
|
||||||
0
|
|
||||||
) - this.extraXOffset,
|
|
||||||
(
|
|
||||||
pos == 'top' ? -this.YOffset :
|
|
||||||
pos == 'bottom' ? this.YOffset :
|
|
||||||
0
|
|
||||||
) - this.extraYOffset
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this.clearBG();
|
|
||||||
v.move(w.outerWidth, w.outerHeight);
|
|
||||||
v.move(-this.extraXOffset, -this.extraYOffset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
dump(e);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
redrawContentAreaWithDelay : function AHB_redrawContentAreaWithDelay() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
if (this.treeStyleTab.isFloating)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this.window.setTimeout(function(aSelf) {
|
|
||||||
aSelf.redrawContentArea();
|
|
||||||
}, 0, this);
|
|
||||||
},
|
|
||||||
|
|
||||||
resetContentAreas : function AHB_resetContentAreas() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
if (this.treeStyleTab.isFloating)
|
|
||||||
return;
|
|
||||||
|
|
||||||
this.treeStyleTab.getTabsArray(this.browser).forEach(function(aTab) {
|
|
||||||
try {
|
|
||||||
aTab.linkedBrowser.markupDocumentViewer.move(0, 0);
|
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
}
|
|
||||||
}, this);
|
|
||||||
},
|
|
||||||
|
|
||||||
get shouldRedraw() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
return !this.treeStyleTab.isFloating && this.enabled && this.expanded;
|
|
||||||
},
|
|
||||||
|
|
||||||
drawBG : function AHB_drawBG() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var sv = this.treeStyleTab;
|
|
||||||
var b = this.browser;
|
|
||||||
var canvas = this.tabbarCanvas;
|
|
||||||
if (sv.isFloating || !canvas || this.isResizing)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var alpha = Number(sv.getTreePref('tabbar.transparent.partialTransparency'));
|
|
||||||
if (isNaN(alpha)) alpha = 0.25;
|
|
||||||
if (alpha >= 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
canvas.style.width = (canvas.width = 1)+'px';
|
|
||||||
canvas.style.height = (canvas.height = 1)+'px';
|
|
||||||
|
|
||||||
var pos = sv.position;
|
|
||||||
|
|
||||||
var frame = b.contentWindow;
|
|
||||||
var tabContainerBox = b.mTabContainer.boxObject;
|
|
||||||
var browserBox = b.mCurrentBrowser.boxObject;
|
|
||||||
var contentBox = sv.getBoxObjectFor(frame.document.documentElement);
|
|
||||||
|
|
||||||
var zoom = this.getZoomForFrame(frame);
|
|
||||||
|
|
||||||
var x = (pos == 'right') ? browserBox.width - this.XOffset : 0 ;
|
|
||||||
var y = (pos == 'bottom') ? browserBox.height - this.YOffset : 0 ;
|
|
||||||
if (pos == 'left' && this.mode == this.kMODE_HIDE)
|
|
||||||
x -= this.togglerSize;
|
|
||||||
x += this.extraXOffset;
|
|
||||||
y += this.extraYOffset;
|
|
||||||
|
|
||||||
var xOffset = (zoom == 1 && (pos == 'top' || pos == 'bottom')) ?
|
|
||||||
Math.max(0, contentBox.screenX + frame.scrollX - browserBox.screenX) :
|
|
||||||
0 ;
|
|
||||||
var yOffset = (zoom == 1 && (pos == 'left' || pos == 'right')) ?
|
|
||||||
Math.max(0, contentBox.screenY + frame.scrollY - browserBox.screenY) :
|
|
||||||
0 ;
|
|
||||||
|
|
||||||
var w = tabContainerBox.width - xOffset;
|
|
||||||
var h = tabContainerBox.height - yOffset;
|
|
||||||
w -= this.extraXOffset;
|
|
||||||
h -= this.extraYOffset;
|
|
||||||
|
|
||||||
var canvasXOffset = 0;
|
|
||||||
var canvasYOffset = 0;
|
|
||||||
if (pos == 'top' || pos == 'bottom')
|
|
||||||
canvasXOffset = tabContainerBox.screenX - b.boxObject.screenX;
|
|
||||||
else
|
|
||||||
canvasYOffset = tabContainerBox.screenY - b.boxObject.screenY;
|
|
||||||
|
|
||||||
for (let node = canvas;
|
|
||||||
node != b.mTabBox;
|
|
||||||
node = node.parentNode)
|
|
||||||
{
|
|
||||||
let style = this.window.getComputedStyle(node, null);
|
|
||||||
'border-left-width,border-right-width,margin-left,margin-right,padding-left,padding-right'
|
|
||||||
.split(',').forEach(function(aProperty) {
|
|
||||||
let value = sv.getPropertyPixelValue(style, aProperty);
|
|
||||||
w -= value;
|
|
||||||
if (aProperty.indexOf('left') < -1) x += value;
|
|
||||||
}, this);
|
|
||||||
'border-top-width,border-bottom-width,margin-top,margin-bottom,padding-left,padding-right'
|
|
||||||
.split(',').forEach(function(aProperty) {
|
|
||||||
let value = sv.getPropertyPixelValue(style, aProperty);
|
|
||||||
h -= value;
|
|
||||||
if (aProperty.indexOf('top') < -1) y += value;
|
|
||||||
}, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// zero width (heigh) canvas becomes wrongly size!!
|
|
||||||
w = Math.max(1, w);
|
|
||||||
h = Math.max(1, h);
|
|
||||||
|
|
||||||
canvas.style.display = 'inline';
|
|
||||||
canvas.style.margin = (yOffset)+'px 0 0 '+(xOffset)+'px';
|
|
||||||
canvas.style.width = (canvas.width = w)+'px';
|
|
||||||
canvas.style.height = (canvas.height = h)+'px';
|
|
||||||
|
|
||||||
w += this.extraXOffset;
|
|
||||||
h += this.extraYOffset;
|
|
||||||
|
|
||||||
var ctx = canvas.getContext('2d');
|
|
||||||
ctx.clearRect(0, 0, w, h);
|
|
||||||
ctx.save();
|
|
||||||
if (this.mode == this.kMODE_SHRINK) {
|
|
||||||
var offset = sv.getTreePref('tabbar.shrunkenWidth') + this.splitterWidth;
|
|
||||||
if (pos == 'left')
|
|
||||||
ctx.translate(offset, 0);
|
|
||||||
else
|
|
||||||
x += this.splitterWidth;
|
|
||||||
w -= offset;
|
|
||||||
}
|
|
||||||
ctx.globalAlpha = 1;
|
|
||||||
if (pos == 'left' || pos == 'right') {
|
|
||||||
ctx.fillStyle = this.splitterBorderColor;
|
|
||||||
ctx.fillRect((pos == 'left' ? -1 : w+1 ), 0, 1, h);
|
|
||||||
}
|
|
||||||
ctx.save();
|
|
||||||
ctx.scale(zoom, zoom);
|
|
||||||
ctx.drawWindow(
|
|
||||||
frame,
|
|
||||||
(x / zoom)+frame.scrollX+canvasXOffset,
|
|
||||||
(y / zoom)+frame.scrollY+canvasYOffset,
|
|
||||||
w / zoom,
|
|
||||||
h / zoom,
|
|
||||||
'-moz-field'
|
|
||||||
);
|
|
||||||
ctx.restore();
|
|
||||||
ctx.globalAlpha = alpha;
|
|
||||||
ctx.fillStyle = 'black';
|
|
||||||
ctx.fillRect(0, 0, w, h);
|
|
||||||
ctx.restore();
|
|
||||||
},
|
|
||||||
|
|
||||||
get splitterBorderColor() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var sv = this.treeStyleTab;
|
|
||||||
var b = this.browser;
|
|
||||||
var w = this.window;
|
|
||||||
var borderNode = sv.getTreePref(
|
|
||||||
sv.isVertical ?
|
|
||||||
'tabbar.fixed.vertical' :
|
|
||||||
'tabbar.fixed.horizontal'
|
|
||||||
) ?
|
|
||||||
sv.tabStrip :
|
|
||||||
this.document.getAnonymousElementByAttribute(b, 'class', sv.kSPLITTER) ;
|
|
||||||
|
|
||||||
var pos = sv.position;
|
|
||||||
var prop = pos == 'left' ? 'right' :
|
|
||||||
pos == 'right' ? 'left' :
|
|
||||||
pos == 'top' ? 'bottom' :
|
|
||||||
'top' ;
|
|
||||||
|
|
||||||
var borderColor = w.getComputedStyle(borderNode, null).getPropertyValue('-moz-border-'+prop+'-colors');
|
|
||||||
if (borderColor == 'none')
|
|
||||||
borderRight = w.getComputedStyle(borderNode, null).getPropertyValue('border-'+prop+'-color');
|
|
||||||
|
|
||||||
/rgba?\(([^,]+),([^,]+),([^,]+)(,.*)?\)/.test(borderColor);
|
|
||||||
|
|
||||||
return 'rgb('+[
|
|
||||||
parseInt(parseInt(RegExp.$1) * 0.8),
|
|
||||||
parseInt(parseInt(RegExp.$2) * 0.8),
|
|
||||||
parseInt(parseInt(RegExp.$3) * 0.8)
|
|
||||||
].join(',')+')';
|
|
||||||
},
|
|
||||||
|
|
||||||
getZoomForFrame : function AHB_getZoomForFrame(aFrame) /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var zoom = aFrame
|
|
||||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
|
||||||
.getInterface(Ci.nsIWebNavigation)
|
|
||||||
.QueryInterface(Ci.nsIDocShell)
|
|
||||||
.contentViewer
|
|
||||||
.QueryInterface(Ci.nsIMarkupDocumentViewer)
|
|
||||||
.fullZoom;
|
|
||||||
return (zoom * 1000 % 1) ? zoom+0.025 : zoom ;
|
|
||||||
},
|
|
||||||
|
|
||||||
clearBG : function AHB_clearBG() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var canvas = this.tabbarCanvas;
|
|
||||||
if (this.treeStyleTab.isFloating || !canvas)
|
|
||||||
return;
|
|
||||||
|
|
||||||
canvas.style.display = 'none';
|
|
||||||
canvas.style.margin = 0;
|
|
||||||
// zero width (heigh) canvas becomes wrongly size!!
|
|
||||||
canvas.style.width = canvas.style.height = '1px';
|
|
||||||
canvas.width = canvas.height = 1;
|
|
||||||
},
|
|
||||||
|
|
||||||
updateTransparency : function AHB_updateTransparency()
|
updateTransparency : function AHB_updateTransparency()
|
||||||
{
|
{
|
||||||
@ -1141,13 +858,6 @@ AutoHideBrowser.prototype = {
|
|||||||
this.sensitiveArea = value;
|
this.sensitiveArea = value;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.width':
|
|
||||||
case 'extensions.treestyletab.tabbar.shrunkenWidth':
|
|
||||||
this.window.setTimeout(function(aSelf) {
|
|
||||||
aSelf.onTabbarResized();
|
|
||||||
}, 0, this);
|
|
||||||
return;
|
|
||||||
|
|
||||||
case 'extensions.treestyletab.tabbar.togglerSize':
|
case 'extensions.treestyletab.tabbar.togglerSize':
|
||||||
this.togglerSize = value;
|
this.togglerSize = value;
|
||||||
var toggler = this.document.getAnonymousElementByAttribute(this.browser, 'class', this.treeStyleTab.kTABBAR_TOGGLER);
|
var toggler = this.document.getAnonymousElementByAttribute(this.browser, 'class', this.treeStyleTab.kTABBAR_TOGGLER);
|
||||||
@ -1190,17 +900,7 @@ AutoHideBrowser.prototype = {
|
|||||||
return this.onMouseUp(aEvent);
|
return this.onMouseUp(aEvent);
|
||||||
|
|
||||||
case 'mousemove':
|
case 'mousemove':
|
||||||
if (this.handleMouseMove(aEvent)) return;
|
return this.handleMouseMove(aEvent);
|
||||||
case 'resize':
|
|
||||||
return this.onResize(aEvent);
|
|
||||||
|
|
||||||
case 'scroll':
|
|
||||||
return this.onScroll(aEvent);
|
|
||||||
|
|
||||||
case 'load':
|
|
||||||
if (this.shouldRedraw)
|
|
||||||
this.redrawContentArea();
|
|
||||||
return;
|
|
||||||
|
|
||||||
case 'TabOpen':
|
case 'TabOpen':
|
||||||
case 'TabClose':
|
case 'TabClose':
|
||||||
@ -1212,8 +912,6 @@ AutoHideBrowser.prototype = {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case 'select':
|
case 'select':
|
||||||
if (this.shouldRedraw)
|
|
||||||
this.redrawContentArea();
|
|
||||||
if (!this.window.TreeStyleTabService.accelKeyPressed)
|
if (!this.window.TreeStyleTabService.accelKeyPressed)
|
||||||
this.showForFeedback();
|
this.showForFeedback();
|
||||||
return;
|
return;
|
||||||
@ -1226,9 +924,6 @@ AutoHideBrowser.prototype = {
|
|||||||
|
|
||||||
case this.treeStyleTab.kEVENT_TYPE_TABBAR_POSITION_CHANGING:
|
case this.treeStyleTab.kEVENT_TYPE_TABBAR_POSITION_CHANGING:
|
||||||
this.isResizing = false;
|
this.isResizing = false;
|
||||||
this.clearBG(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
if (this.shouldRedraw) /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
this.hide();
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case this.treeStyleTab.kEVENT_TYPE_TABBAR_POSITION_CHANGED:
|
case this.treeStyleTab.kEVENT_TYPE_TABBAR_POSITION_CHANGED:
|
||||||
@ -1291,26 +986,7 @@ AutoHideBrowser.prototype = {
|
|||||||
).booleanValue
|
).booleanValue
|
||||||
) {
|
) {
|
||||||
this.isResizing = true;
|
this.isResizing = true;
|
||||||
this.clearBG(); /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
sv.setTabbrowserAttribute(sv.kRESIZING, true);
|
sv.setTabbrowserAttribute(sv.kRESIZING, true);
|
||||||
/* canvasを非表示にしたのと同じタイミングでリサイズを行うと、
|
|
||||||
まだ内部的にcanvasの大きさが残ったままなので、その大きさ以下に
|
|
||||||
タブバーの幅を縮められなくなる。手動でイベントを再送してやると
|
|
||||||
この問題を防ぐことができる。 */
|
|
||||||
aEvent.preventDefault();
|
|
||||||
aEvent.stopPropagation();
|
|
||||||
var flags = 0;
|
|
||||||
const nsIDOMNSEvent = Ci.nsIDOMNSEvent;
|
|
||||||
if (aEvent.altKey) flags |= nsIDOMNSEvent.ALT_MASK;
|
|
||||||
if (aEvent.ctrlKey) flags |= nsIDOMNSEvent.CONTROL_MASK;
|
|
||||||
if (aEvent.shiftKey) flags |= nsIDOMNSEvent.SHIFT_MASK;
|
|
||||||
if (aEvent.metaKey) flags |= nsIDOMNSEvent.META_MASK;
|
|
||||||
w.setTimeout(function(aX, aY, aButton, aDetail) {
|
|
||||||
w.QueryInterface(Ci.nsIInterfaceRequestor)
|
|
||||||
.getInterface(Ci.nsIDOMWindowUtils)
|
|
||||||
.sendMouseEvent('mousedown', aX, aY, aButton, aDetail, flags);
|
|
||||||
flags = null;
|
|
||||||
}, 0, aEvent.clientX, aEvent.clientY, aEvent.button, aEvent.detail);
|
|
||||||
}
|
}
|
||||||
this.cancelShowHideOnMouseMove();
|
this.cancelShowHideOnMouseMove();
|
||||||
if (
|
if (
|
||||||
@ -1336,11 +1012,6 @@ AutoHideBrowser.prototype = {
|
|||||||
).booleanValue) {
|
).booleanValue) {
|
||||||
this.isResizing = false;
|
this.isResizing = false;
|
||||||
sv.removeTabbrowserAttribute(sv.kRESIZING);
|
sv.removeTabbrowserAttribute(sv.kRESIZING);
|
||||||
this.window.setTimeout(function(aSelf) { /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
if (!aSelf.shouldRedraw) return;
|
|
||||||
aSelf.redrawContentArea();
|
|
||||||
aSelf.drawBG();
|
|
||||||
}, 0, this);
|
|
||||||
}
|
}
|
||||||
this.cancelShowHideOnMouseMove();
|
this.cancelShowHideOnMouseMove();
|
||||||
this.lastMouseDownTarget = null;
|
this.lastMouseDownTarget = null;
|
||||||
@ -1365,62 +1036,6 @@ AutoHideBrowser.prototype = {
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
onResize : function AHB_onResize(aEvent) /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
if (
|
|
||||||
aEvent.originalTarget &&
|
|
||||||
(
|
|
||||||
aEvent.originalTarget.ownerDocument == this.document ||
|
|
||||||
aEvent.originalTarget == this.window
|
|
||||||
)
|
|
||||||
)
|
|
||||||
this.onTabbarResized();
|
|
||||||
},
|
|
||||||
|
|
||||||
onTabbarResized : function AHB_onTabbarResized() /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
{
|
|
||||||
var sv = this.treeStyleTab;
|
|
||||||
if (sv.isFloating || !this.shouldRedraw)
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (sv.position)
|
|
||||||
{
|
|
||||||
case 'left':
|
|
||||||
sv.container.style.marginRight = '-'+this.XOffset+'px';
|
|
||||||
break;
|
|
||||||
case 'right':
|
|
||||||
sv.container.style.marginLeft = '-'+this.XOffset+'px';
|
|
||||||
break;
|
|
||||||
case 'bottom':
|
|
||||||
sv.container.style.marginTop = '-'+this.YOffset+'px';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
sv.container.style.marginBottom = '-'+this.YOffset+'px';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
this.redrawContentArea();
|
|
||||||
},
|
|
||||||
|
|
||||||
onScroll : function AHB_onScroll(aEvent)
|
|
||||||
{
|
|
||||||
var node = aEvent.originalTarget;
|
|
||||||
if ((node && node.ownerDocument == this.document) || !this.shouldRedraw) return;
|
|
||||||
|
|
||||||
var tabbarBox, nodeBox;
|
|
||||||
if (
|
|
||||||
!(node instanceof Ci.nsIDOMElement) ||
|
|
||||||
(
|
|
||||||
(tabbarBox = this.treeStyleTab.getBoxObjectFor(this.browser.mTabContainer)) &&
|
|
||||||
(nodeBox = this.treeStyleTab.getBoxObjectFor(node)) &&
|
|
||||||
tabbarBox.screenX <= nodeBox.screenX + nodeBox.width &&
|
|
||||||
tabbarBox.screenX + tabbarBox.width >= nodeBox.screenX &&
|
|
||||||
tabbarBox.screenY <= nodeBox.screenY + nodeBox.height &&
|
|
||||||
tabbarBox.screenY + tabbarBox.height >= nodeBox.screenY
|
|
||||||
)
|
|
||||||
)
|
|
||||||
this.redrawContentArea();
|
|
||||||
},
|
|
||||||
|
|
||||||
onDragOver : function AHB_onDragOver(aEvent)
|
onDragOver : function AHB_onDragOver(aEvent)
|
||||||
{
|
{
|
||||||
if (this.expanded)
|
if (this.expanded)
|
||||||
@ -1551,17 +1166,6 @@ AutoHideBrowser.prototype = {
|
|||||||
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_KEY_DOWN, this, false);
|
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_KEY_DOWN, this, false);
|
||||||
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_START, this, false);
|
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_START, this, false);
|
||||||
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_END, this, false);
|
b.addEventListener(sv.kEVENT_TYPE_TAB_FOCUS_SWITCHING_END, this, false);
|
||||||
|
|
||||||
if (!sv.isFloating) { /* legacy feature for Firefox 3.6 or olders */
|
|
||||||
let stack = this.document.getAnonymousElementByAttribute(b.mTabContainer, 'class', 'tabs-stack');
|
|
||||||
if (stack) {
|
|
||||||
let canvas = this.document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');
|
|
||||||
canvas.setAttribute('style', 'display:none;width:1;height:1;');
|
|
||||||
stack.firstChild.appendChild(canvas);
|
|
||||||
this.tabbarCanvas = canvas;
|
|
||||||
this.clearBG();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
destroy : function AHB_destroy()
|
destroy : function AHB_destroy()
|
||||||
|
Loading…
Reference in New Issue
Block a user