diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-06-07 12:37:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-07 12:37:43 +0200 |
commit | c8f1b9fc6c1c86674148b5875c1eb27335899b35 (patch) | |
tree | 795fc8dff36e0b075ccdaf7e828325e6be2eeaf3 /application/palemoon/base | |
parent | 440ed92f38df5a57a9f8f97117dd0d211c2f5625 (diff) | |
parent | d48914545ee1536ae39b02c7c885cfbdd3c8b804 (diff) | |
download | UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.gz UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.lz UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.xz UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.zip |
Merge pull request #459 from janekptacijarabaci/pm_findbar_2
[PALEMOON] Fix the Findbar - open when you press "/" or "'" keys after start of browser
Diffstat (limited to 'application/palemoon/base')
-rw-r--r-- | application/palemoon/base/content/browser.js | 63 | ||||
-rw-r--r-- | application/palemoon/base/content/tabbrowser.xml | 30 |
2 files changed, 63 insertions, 30 deletions
diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js index a51b73fe8..ba791f709 100644 --- a/application/palemoon/base/content/browser.js +++ b/application/palemoon/base/content/browser.js @@ -328,6 +328,67 @@ const gSessionHistoryObserver = { } }; +var gFindBarSettings = { + messageName: "Findbar:Keypress", + prefName: "accessibility.typeaheadfind", + findAsYouType: null, + + init: function() { + window.messageManager.addMessageListener(this.messageName, this); + + gPrefService.addObserver(this.prefName, this, false); + this.writeFindAsYouType(); + }, + + uninit: function() { + window.messageManager.removeMessageListener(this.messageName, this); + + try { + gPrefService.removeObserver(this.prefName, this); + } catch (ex) { + Cu.reportError(ex); + } + }, + + observe: function(aSubject, aTopic, aData) { + if (aTopic != "nsPref:changed") { + return; + } + + this.writeFindAsYouType(); + }, + + writeFindAsYouType: function() { + this.findAsYouType = gPrefService.getBoolPref(this.prefName); + }, + + receiveMessage: function(aMessage) { + switch (aMessage.name) { + case this.messageName: + // If the find bar for chrome window's context is not yet alive, + // only initialize it if there's a possibility FindAsYouType + // will be used. + // There's no point in doing it for most random keypresses. + if (!gFindBarInitialized && aMessage.data.shouldFastFind) { + let shouldFastFind = this.findAsYouType; + if (!shouldFastFind) { + // Please keep in sync with toolkit/content/widgets/findbar.xml + const FAYT_LINKS_KEY = "'"; + const FAYT_TEXT_KEY = "/"; + let charCode = aMessage.data.fakeEvent.charCode; + let key = charCode ? String.fromCharCode(charCode) : null; + shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY; + } + if (shouldFastFind) { + // Make sure we return the result. + return gFindBar.receiveMessage(aMessage); + } + } + break; + } + } +}; + var gURLBarSettings = { prefSuggest: "browser.urlbar.suggest.", /* @@ -730,6 +791,7 @@ var gBrowserInit = { #ifdef MOZ_DEVTOOLS DevToolsTheme.init(); #endif + gFindBarSettings.init(); messageManager.loadFrameScript("chrome://browser/content/content.js", true); messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true); @@ -1305,6 +1367,7 @@ var gBrowserInit = { #ifdef MOZ_DEVTOOLS DevToolsTheme.uninit(); #endif + gFindBarSettings.uninit(); UserAgentCompatibility.uninit(); diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml index 78e348d8c..c054318ec 100644 --- a/application/palemoon/base/content/tabbrowser.xml +++ b/application/palemoon/base/content/tabbrowser.xml @@ -3106,26 +3106,6 @@ window.focus(); break; } - case "Findbar:Keypress": - // If the find bar for this tab is not yet alive, only initialize - // it if there's a possibility FindAsYouType will be used. - // There's no point in doing it for most random keypresses. - if (!gFindBarInitialized && aMessage.data.shouldFastFind) { - let shouldFastFind = this._findAsYouType; - if (!shouldFastFind) { - // Please keep in sync with toolkit/content/widgets/findbar.xml - const FAYT_LINKS_KEY = "'"; - const FAYT_TEXT_KEY = "/"; - let charCode = aMessage.data.fakeEvent.charCode; - let key = charCode ? String.fromCharCode(charCode) : null; - shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY; - } - if (shouldFastFind) { - // Make sure we return the result. - return gFindBar.receiveMessage(aMessage); - } - } - break; } ]]></body> </method> @@ -3192,11 +3172,6 @@ this.mCurrentBrowser); } messageManager.addMessageListener("DOMWebNotificationClicked", this); - - // To correctly handle keypresses for potential FindAsYouType, while - // the tab's find bar is not yet initialized. - this._findAsYouType = Services.prefs.getBoolPref("accessibility.typeaheadfind"); - messageManager.addMessageListener("Findbar:Keypress", this); ]]> </constructor> @@ -3451,7 +3426,6 @@ tab.setAttribute("onerror", "this.removeAttribute('image');"); this.adjustTabstrip(); - Services.prefs.addObserver("accessibility.typeaheadfind", this._prefObserver, false); Services.prefs.addObserver("browser.tabs.", this._prefObserver, false); window.addEventListener("resize", this, false); window.addEventListener("load", this, false); @@ -3467,7 +3441,6 @@ <destructor> <![CDATA[ - Services.prefs.removeObserver("accessibility.typeaheadfind", this._prefObserver); Services.prefs.removeObserver("browser.tabs.", this._prefObserver); ]]> </destructor> @@ -3533,9 +3506,6 @@ observe: function (subject, topic, data) { switch (data) { - case "accessibility.typeaheadfind": - this._findAsYouType = Services.prefs.getBoolPref(data); - break; case "browser.tabs.closeButtons": this.tabContainer.mCloseButtons = Services.prefs.getIntPref(data); this.tabContainer.adjustTabstrip(); |