I use a customized Charamel Theme made by myself. Charamel uses to shape its tabs binding in this way, on global/globalBindings.xml:
Code: Select all
<binding id="tab" extends="chrome://global/content/bindings/tabbox.xml#tab">
<content>
<xul:hbox class="tab-startcap" xbl:inherits="selected"/>
<!-- <xul:hbox flex="1" class="tab-body" align="center" xbl:inherits="selected">-->
<xul:hbox class="tab-icon">
<xul:image xbl:inherits="validate,src=image" class="tab-icon-image" />
</xul:hbox>
<xul:label flex="1" xbl:inherits="value=label,crop,accesskey" crop="right" class="tab-text"/>
<!--</xul:hbox>-->
<xul:hbox class="tab-endcap" xbl:inherits="selected"/>
</content>
</binding>
TabMix has a hack to work with Charamel on content/tabmix/tab/tabmix.xml:
Code: Select all
<!-- for TabX and MouseOverSelectTab
original codes by Stephen Clavering
modified by Hemiola SUN -->
<binding id="browser-tab" display="xul:tab"
extends="chrome://global/content/bindings/tabbox.xml#tab">
<content>
<xul:hbox class="tab-startcap" xbl:inherits="selected"/> <!-- hack for Charamel Theme -->
<xul:hbox class="tab-drag-indicator-left"/>
<xul:stack class="tab-icon" xbl:inherits="src=image">
<xul:image class="tab-site-icon" xbl:inherits="validate,src=image"/>
<xul:image class="tab-protect-icon"/>
<xul:image class="tab-lock-icon"/>
</xul:stack>
<xul:stack class="tab-text-container" flex="1">
<xul:progressmeter class="tab-progress"
flex="2"
mode="normal" value="0"
xbl:inherits="value=tab-progress"/>
<xul:label class="tab-text" xbl:inherits="value=label,accesskey,crop,disabled" flex="2"/>
<xul:hbox>
<xul:spacer flex="1"/>
<xul:toolbarbutton class="tabs-closebutton showhover" style="margin: 0; padding: 0"/>
</xul:hbox>
</xul:stack>
<xul:toolbarbutton class="tabs-closebutton always" style="padding: 0"/>
<xul:hbox class="tab-drag-indicator-right"/>
<xul:hbox class="tab-endcap" xbl:inherits="selected"/> <!-- hack for Charamel Theme -->
</content>
<implementation>
<field name="mIsHover">
false
</field>
<field name="mButtonId">
0
</field>
<field name="mFocusId">
0
</field>
<property name="mTabBrowser" readonly="true">
<getter><![CDATA[
if (!this._mTabBrowser) {
var node = this.parentNode;
while (node.localName != 'tabbrowser')
node = node.parentNode;
this._mTabBrowser = node;
}
return this._mTabBrowser;
]]></getter>
</property>
<property name="mouseHoverSelect" readonly="true">
<getter><![CDATA[
try {
return gPref.getBoolPref("extensions.tabmix.mouseOverSelect");
}
catch(e) {
return false;
}
]]></getter>
</property>
<property name="mouseHoverSelectDelay" readonly="true">
<getter><![CDATA[
try {
return gPref.getIntPref("extensions.tabmix.mouseOverSelectDelay");
}
catch(e) {
return 250;
}
]]></getter>
</property>
<property name="tabXDelay" readonly="true">
<getter><![CDATA[
try {
return gPref.getIntPref("extensions.tabmix.tabXDelay");
}
catch(e) {
return 0;
}
]]></getter>
</property>
<property name="baseY">
<getter><![CDATA[
return this.boxObject.y+this.boxObject.height;
]]></getter>
</property>
<method name="onMouseOver">
<parameter name="aEvent"/>
<body><![CDATA[
this.mIsHover = true;
this.mButtonId = window.setTimeout(this.setShowButton, this.tabXDelay, this);
if (this.mouseHoverSelect)
this.mFocusId = window.setTimeout(this.doMouseHoverSelect, this.mouseHoverSelectDelay, this);
]]></body>
</method>
<method name="doMouseHoverSelect">
<parameter name="aTab"/>
<body><![CDATA[
if ( aTab.mIsHover )
aTab.mTabBrowser.selectedTab = aTab;
]]></body>
</method>
<method name="setShowButton">
<parameter name="aTab"/>
<body><![CDATA[
if ( aTab.mIsHover )
aTab.setAttribute("showbutton", "on");
]]></body>
</method>
<method name="onMouseOut">
<parameter name="aEvent"/>
<body><![CDATA[
this.mIsHover = false;
window.setTimeout(this.removeShowButton, this.tabXDelay, this);
clearTimeout(this.mButtonId);
if (this.mouseHoverSelect)
clearTimeout(this.mFocusId);
]]></body>
</method>
<method name="removeShowButton">
<parameter name="aTab"/>
<body><![CDATA[
if ( !aTab.mIsHover )
aTab.setAttribute("showbutton", "off");
]]></body>
</method>
</implementation>
<handlers>
<handler event="mouseover">
<![CDATA[
this.onMouseOver(event);
]]>
</handler>
<handler event="mouseout">
<![CDATA[
this.onMouseOut(event);
]]>
</handler>
<handler event="click" button="0">
<![CDATA[
if ( event.originalTarget.className == "tabs-closebutton showhover" ||
event.originalTarget.className == "tabs-closebutton always" )
this.parentNode.parentNode.parentNode.parentNode.removeTab(this);
else if ( this.ordinal == this.parentNode.selectedItem.ordinal )
this.setAttribute("clickOnCurrent","true");
else
this.parentNode.selectedItem = this;
]]>
</handler>
</handlers>
</binding>
It works just fine with build 20050516 but it doesn't work anymore with builds 20050517. All the appearances are lost, closebutton, progressmeter, etc...
I can't see on bonsai any modification that could cause this behaviour...
Can you guys help me with this???
Thanks