summaryrefslogtreecommitdiffstats
path: root/application/palemoon/base
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-06-07 12:37:43 +0200
committerGitHub <noreply@github.com>2018-06-07 12:37:43 +0200
commitc8f1b9fc6c1c86674148b5875c1eb27335899b35 (patch)
tree795fc8dff36e0b075ccdaf7e828325e6be2eeaf3 /application/palemoon/base
parent440ed92f38df5a57a9f8f97117dd0d211c2f5625 (diff)
parentd48914545ee1536ae39b02c7c885cfbdd3c8b804 (diff)
downloadUXP-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.js63
-rw-r--r--application/palemoon/base/content/tabbrowser.xml30
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();