Minimal easy fix -- move findbar getters to tabbrowser.

Resolves #487
This commit is contained in:
wolfbeast 2018-06-12 22:02:00 +02:00 committed by Roy Tam
commit b25c4a5c1f
2 changed files with 48 additions and 14 deletions

View file

@ -53,20 +53,13 @@ var gEditUIVisible = true;
// Smart getter for the findbar. If you don't wish to force the creation of
// the findbar, check gFindBarInitialized first.
var gFindBarInitialized = false;
XPCOMUtils.defineLazyGetter(window, "gFindBar", function() {
let XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
let findbar = document.createElementNS(XULNS, "findbar");
findbar.id = "FindToolbar";
let browserBottomBox = document.getElementById("browser-bottombox");
browserBottomBox.insertBefore(findbar, browserBottomBox.firstChild);
this.__defineGetter__("gFindBar", function() {
return window.gBrowser.getFindBar();
});
// Force a style flush to ensure that our binding is attached.
findbar.clientTop;
findbar.browser = gBrowser.mCurrentBrowser;
window.gFindBarInitialized = true;
return findbar;
this.__defineGetter__("gFindBarInitialized", function() {
return window.gBrowser.isFindBarInitialized();
});
XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",

View file

@ -128,6 +128,10 @@
false
</field>
<field name="_lastFindValue">
""
</field>
<property name="_numPinnedTabs" readonly="true">
<getter><![CDATA[
for (var i = 0; i < this.tabs.length; i++) {
@ -154,6 +158,43 @@
]]></getter>
</property>
<method name="isFindBarInitialized">
<parameter name="aTab"/>
<body><![CDATA[
return (aTab || this.selectedTab)._findBar != undefined;
]]></body>
</method>
<method name="getFindBar">
<parameter name="aTab"/>
<body><![CDATA[
if (!aTab)
aTab = this.selectedTab;
if (aTab._findBar)
return aTab._findBar;
let findBar = document.createElementNS(this.namespaceURI, "findbar");
let browser = this.getBrowserForTab(aTab);
let browserContainer = this.getBrowserContainer(browser);
browserContainer.appendChild(findBar);
// Force a style flush to ensure that our binding is attached.
findBar.clientTop;
findBar.browser = browser;
findBar._findField.value = this._lastFindValue;
aTab._findBar = findBar;
let event = document.createEvent("Events");
event.initEvent("TabFindInitialized", true, false);
aTab.dispatchEvent(event);
return findBar;
]]></body>
</method>
<method name="updateWindowResizers">
<body><![CDATA[
if (!window.gShowPageResizers)