Be more explicit about which browser content object is focused and when.

This commit is contained in:
wolfbeast
2018-06-22 12:13:20 +02:00
parent 65c98eda36
commit cadeea97bb
@@ -328,6 +328,7 @@ function openLinkIn(url, where, params) {
// result in a new frontmost window (e.g. "javascript:window.open('');").
w.focus();
let browserUsedForLoad = null;
switch (where) {
case "current":
let flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
@@ -346,27 +347,35 @@ function openLinkIn(url, where, params) {
referrerPolicy: aReferrerPolicy,
postData: aPostData,
});
browserUsedForLoad = aCurrentBrowser;
break;
case "tabshifted":
loadInBackground = !loadInBackground;
// fall through
case "tab":
let browser = w.gBrowser;
browser.loadOneTab(url, {
referrerURI: aReferrerURI,
referrerPolicy: aReferrerPolicy,
charset: aCharset,
postData: aPostData,
inBackground: loadInBackground,
allowThirdPartyFixup: aAllowThirdPartyFixup,
relatedToCurrent: aRelatedToCurrent});
let tabUsedForLoad = browser.loadOneTab(url, {
referrerURI: aReferrerURI,
referrerPolicy: aReferrerPolicy,
charset: aCharset,
postData: aPostData,
inBackground: loadInBackground,
allowThirdPartyFixup: aAllowThirdPartyFixup,
relatedToCurrent: aRelatedToCurrent});
browserUsedForLoad = tabUsedForLoad.linkedBrowser;
break;
}
w.gBrowser.selectedBrowser.focus();
// Focus the content, but only if the browser used for the load is selected.
if (browserUsedForLoad &&
browserUsedForLoad == browserUsedForLoad.getTabBrowser().selectedBrowser) {
browserUsedForLoad.focus();
}
if (!loadInBackground && w.isBlankPageURL(url))
w.focusAndSelectUrlBar();
if (!w.focusAndSelectUrlBar()) {
console.error("Unable to focus and select address bar.")
}
}
// Used as an onclick handler for UI elements with link-like behavior.