mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-30 20:37:31 +09:00
[PALEMOON] Fix the Findbar - open when you press "/" or "'" keys after start of browser
Issue #430
This commit is contained in:
parent
1943c044a5
commit
426e543f27
2 changed files with 62 additions and 30 deletions
|
|
@ -328,6 +328,66 @@ const gSessionHistoryObserver = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var gFindBarSettings = {
|
||||||
|
messageName: "Findbar:Keypress",
|
||||||
|
prefName: "accessibility.typeaheadfind",
|
||||||
|
findAsYouType: null,
|
||||||
|
|
||||||
|
init() {
|
||||||
|
window.messageManager.addMessageListener(this.messageName, this);
|
||||||
|
|
||||||
|
gPrefService.addObserver(this.prefName, this, false);
|
||||||
|
this.writeFindAsYouType();
|
||||||
|
},
|
||||||
|
|
||||||
|
uninit() {
|
||||||
|
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(aMessage) {
|
||||||
|
switch (aMessage.name) {
|
||||||
|
case this.messageName:
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var gURLBarSettings = {
|
var gURLBarSettings = {
|
||||||
prefSuggest: "browser.urlbar.suggest.",
|
prefSuggest: "browser.urlbar.suggest.",
|
||||||
/*
|
/*
|
||||||
|
|
@ -730,6 +790,7 @@ var gBrowserInit = {
|
||||||
#ifdef MOZ_DEVTOOLS
|
#ifdef MOZ_DEVTOOLS
|
||||||
DevToolsTheme.init();
|
DevToolsTheme.init();
|
||||||
#endif
|
#endif
|
||||||
|
gFindBarSettings.init();
|
||||||
|
|
||||||
messageManager.loadFrameScript("chrome://browser/content/content.js", true);
|
messageManager.loadFrameScript("chrome://browser/content/content.js", true);
|
||||||
messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true);
|
messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true);
|
||||||
|
|
@ -1305,6 +1366,7 @@ var gBrowserInit = {
|
||||||
#ifdef MOZ_DEVTOOLS
|
#ifdef MOZ_DEVTOOLS
|
||||||
DevToolsTheme.uninit();
|
DevToolsTheme.uninit();
|
||||||
#endif
|
#endif
|
||||||
|
gFindBarSettings.uninit();
|
||||||
|
|
||||||
UserAgentCompatibility.uninit();
|
UserAgentCompatibility.uninit();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3106,26 +3106,6 @@
|
||||||
window.focus();
|
window.focus();
|
||||||
break;
|
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>
|
]]></body>
|
||||||
</method>
|
</method>
|
||||||
|
|
@ -3192,11 +3172,6 @@
|
||||||
this.mCurrentBrowser);
|
this.mCurrentBrowser);
|
||||||
}
|
}
|
||||||
messageManager.addMessageListener("DOMWebNotificationClicked", this);
|
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>
|
</constructor>
|
||||||
|
|
||||||
|
|
@ -3451,7 +3426,6 @@
|
||||||
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
tab.setAttribute("onerror", "this.removeAttribute('image');");
|
||||||
this.adjustTabstrip();
|
this.adjustTabstrip();
|
||||||
|
|
||||||
Services.prefs.addObserver("accessibility.typeaheadfind", this._prefObserver, false);
|
|
||||||
Services.prefs.addObserver("browser.tabs.", this._prefObserver, false);
|
Services.prefs.addObserver("browser.tabs.", this._prefObserver, false);
|
||||||
window.addEventListener("resize", this, false);
|
window.addEventListener("resize", this, false);
|
||||||
window.addEventListener("load", this, false);
|
window.addEventListener("load", this, false);
|
||||||
|
|
@ -3467,7 +3441,6 @@
|
||||||
|
|
||||||
<destructor>
|
<destructor>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
Services.prefs.removeObserver("accessibility.typeaheadfind", this._prefObserver);
|
|
||||||
Services.prefs.removeObserver("browser.tabs.", this._prefObserver);
|
Services.prefs.removeObserver("browser.tabs.", this._prefObserver);
|
||||||
]]>
|
]]>
|
||||||
</destructor>
|
</destructor>
|
||||||
|
|
@ -3533,9 +3506,6 @@
|
||||||
|
|
||||||
observe: function (subject, topic, data) {
|
observe: function (subject, topic, data) {
|
||||||
switch (data) {
|
switch (data) {
|
||||||
case "accessibility.typeaheadfind":
|
|
||||||
this._findAsYouType = Services.prefs.getBoolPref(data);
|
|
||||||
break;
|
|
||||||
case "browser.tabs.closeButtons":
|
case "browser.tabs.closeButtons":
|
||||||
this.tabContainer.mCloseButtons = Services.prefs.getIntPref(data);
|
this.tabContainer.mCloseButtons = Services.prefs.getIntPref(data);
|
||||||
this.tabContainer.adjustTabstrip();
|
this.tabContainer.adjustTabstrip();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue