Skip to content
This repository has been archived by the owner on Mar 5, 2019. It is now read-only.

Commit

Permalink
Fix toolbars popup break during FullScreen in Fx35+
Browse files Browse the repository at this point in the history
Due to https://hg.mozilla.org/mozilla-central/rev/cfbe5fc74ea2 [Bug 1071821]
This is an not perfect realization, but I really did not find a compatible way.
Tested on Fx36/30/28
  • Loading branch information
yfdyh000 committed Feb 23, 2015
1 parent 4da116f commit 22a64f8
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 30 deletions.
64 changes: 39 additions & 25 deletions chrome/content/tabutils-vt.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,48 @@ tabutils._verticalTabs = function() {
gBrowser.mTabContainer.visible = aShow;
});

TU_hookCode("FullScreen.toggle", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.addEventListener("mouseover", this._expandCallback, false);
fullScrToggler.addEventListener("dragenter", this._expandCallback, false);
}
});

TU_hookCode("FullScreen.enterDomFullscreen", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.removeEventListener("mouseover", this._expandCallback, false);
fullScrToggler.removeEventListener("dragenter", this._expandCallback, false);
}
});
if (parseFloat(Services.appinfo.version) >= 35.0) { // Bug 1071821 [Fx35]
// I did not find a compatible approach
TU_hookCode("FullScreen.toggle", /.*if.*\(\!this\._fullScrToggler\).*\n.*\n.*\n.*\n.*\}/, function() {
if (!this._eventLoaded) { // the equivalent to "if (!this._fullScrToggler)"
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.addEventListener("mouseover", this._expandCallback, false);
fullScrToggler.addEventListener("dragenter", this._expandCallback, false);
fullScrToggler.collapsed = false;
}
this._eventLoaded = true;
}
});

TU_hookCode("FullScreen.cleanup", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.removeEventListener("mouseover", this._expandCallback, false);
fullScrToggler.removeEventListener("dragenter", this._expandCallback, false);
}
});
} else { // Earlier than Fx35
TU_hookCode("FullScreen.toggle", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.addEventListener("mouseover", this._expandCallback, false);
fullScrToggler.addEventListener("dragenter", this._expandCallback, false);
fullScrToggler.hidden = false;
}
});
TU_hookCode("FullScreen.enterDomFullscreen", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.removeEventListener("mouseover", this._expandCallback, false);
fullScrToggler.removeEventListener("dragenter", this._expandCallback, false);
}
});

TU_hookCode("FullScreen.mouseoverToggle", /.*collapsed = aShow.*/, function() {
TU_hookCode("FullScreen.cleanup", /.*_expandCallback.*\n.*_expandCallback.*/, function() {
for (let fullScrToggler of this._fullScrTogglers) {
fullScrToggler.removeEventListener("mouseover", this._expandCallback, false);
fullScrToggler.removeEventListener("dragenter", this._expandCallback, false);
}
});
}
TU_hookCode("FullScreen.mouseoverToggle", /.*(collapsed|hidden) = aShow.*/, function() {
let tabBarPosition = TU_getPref("extensions.tabutils.tabBarPosition");
this._fullScrTogglers[0].collapsed = aShow;
this._fullScrTogglers[1].collapsed = aShow || tabBarPosition != 1;
this._fullScrTogglers[2].collapsed = aShow || tabBarPosition != 2;
this._fullScrTogglers[3].collapsed = aShow || tabBarPosition != 3;
});
this._fullScrTogglers[0].$1 = aShow;
this._fullScrTogglers[1].$1 = aShow || tabBarPosition != 1;
this._fullScrTogglers[2].$1 = aShow || tabBarPosition != 2;
this._fullScrTogglers[3].$1 = aShow || tabBarPosition != 3;
}); // Note: mozFullScreen is Fx9+. I did not add " || document.mozFullScreen" because it seems always return to false, unknown reason.

TU_hookCode("FullScreen.showXULChrome",
['fullscreenctls.parentNode == navbar', 'document.getElementById("TabsToolbar").parentNode == gNavToolbox'],
Expand Down
8 changes: 4 additions & 4 deletions chrome/content/tabutils.xul
Original file line number Diff line number Diff line change
Expand Up @@ -419,13 +419,13 @@
key="key_toggleTabsToolbar"/>

<vbox id="browser-panel">
<hbox id="fullscr-toggler" collapsed="true" insertbefore="browser"/>
<hbox id="fullscr-toggler-bottom" collapsed="true" insertafter="browser"/>
<hbox id="fullscr-toggler" collapsed="true" hidden="true" insertbefore="browser"/>
<hbox id="fullscr-toggler-bottom" collapsed="true" hidden="true" insertafter="browser"/>
</vbox>

<hbox id="browser">
<vbox id="fullscr-toggler-left" collapsed="true" insertbefore="appcontent"/>
<vbox id="fullscr-toggler-right" collapsed="true" insertafter="appcontent"/>
<vbox id="fullscr-toggler-left" collapsed="true" hidden="true" insertbefore="appcontent"/>
<vbox id="fullscr-toggler-right" collapsed="true" hidden="true" insertafter="appcontent"/>
</hbox>

<statusbar id="status-bar">
Expand Down
2 changes: 1 addition & 1 deletion install.rdf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<em:id>[email protected]</em:id>
<em:type>2</em:type>
<em:name>Tab Utilities Fixed</em:name>
<em:version>1.5.2015.02.21</em:version>
<em:version>1.5.2015.02.23</em:version>
<em:creator>YFdyh000</em:creator>
<em:contributor>ithinc (Former author)</em:contributor>
<em:contributor>Leszek(teo)Życzkowski</em:contributor>
Expand Down

0 comments on commit 22a64f8

Please sign in to comment.