From 5dbaca8ad73f35d6a14bb04e87d6c646bd9bb0d9 Mon Sep 17 00:00:00 2001 From: Lars Wendler Date: Thu, 15 Apr 2021 10:30:22 +0200 Subject: www-client/seamonkey: Bump to version 2.53.7.1 Signed-off-by: Lars Wendler --- .../files/seamonkey-2.53.7-ownertab.patch | 236 +++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 www-client/seamonkey/files/seamonkey-2.53.7-ownertab.patch (limited to 'www-client/seamonkey/files/seamonkey-2.53.7-ownertab.patch') diff --git a/www-client/seamonkey/files/seamonkey-2.53.7-ownertab.patch b/www-client/seamonkey/files/seamonkey-2.53.7-ownertab.patch new file mode 100644 index 000000000000..c0ae11ff076b --- /dev/null +++ b/www-client/seamonkey/files/seamonkey-2.53.7-ownertab.patch @@ -0,0 +1,236 @@ +--- seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js ++++ seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js +@@ -225,16 +225,17 @@ pref("browser.tabs.autoHide", false); + pref("browser.tabs.forceHide", false); + pref("browser.tabs.closeWindowWithLastTab", true); + pref("browser.tabs.warnOnClose", true); + pref("browser.tabs.warnOnCloseOther", true); + pref("browser.tabs.warnOnOpen", true); + pref("browser.tabs.maxOpenBeforeWarn", 15); + pref("browser.tabs.insertRelatedAfterCurrent", true); + pref("browser.tabs.insertAllTabsAfterCurrent", false); ++pref("browser.tabs.selectOwnerOnClose", true); + + // For future use + pref("browser.tabs.loadBookmarksInBackground", false); + + // how many browsers can be saved in the DOM (by the tabbed browser) + pref("browser.tabs.max_tabs_undo", 3); + // should popups by saved in the DOM (by the tabbed browser) + pref("browser.tabs.cache_popups", false); +--- seamonkey-2.53.7/comm/suite/base/content/utilityOverlay.js ++++ seamonkey-2.53.7/comm/suite/base/content/utilityOverlay.js +@@ -1624,21 +1624,23 @@ function openLinkIn(url, where, params) + // forces tab to be focused + loadInBackground = true; + // fall through + case "tabshifted": + loadInBackground = !loadInBackground; + // fall through + case "tab": + var browser = w.getBrowser(); ++ var owner = loadInBackground ? null : browser.selectedTab; + var tab = browser.addTab(url, { + referrerURI: aReferrerURI, + referrerPolicy: aReferrerPolicy, + charset: aCharset, + postData: aPostData, ++ ownerTab: owner, + allowThirdPartyFixup: aAllowThirdPartyFixup, + relatedToCurrent: aRelatedToCurrent, + allowMixedContent: aAllowMixedContent, + noReferrer: aNoReferrer, + userContextId: aUserContextId, + originPrincipal: aPrincipal, + triggeringPrincipal: aTriggeringPrincipal, + }); +--- seamonkey-2.53.7/comm/suite/browser/tabbrowser.xml ++++ seamonkey-2.53.7/comm/suite/browser/tabbrowser.xml +@@ -1151,16 +1151,28 @@ + newBrowser.docShellIsActive = this.mCurrentTab.linkedBrowser.docShellIsActive; + if (this.mCurrentBrowser) { + this.mCurrentBrowser.droppedLinkHandler = null; + this.mCurrentBrowser.docShellIsActive = false; + this.mCurrentBrowser.removeAttribute("primary"); + this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.removeResultListener(l)); + } + ++ var oldTab = this.mCurrentTab; ++ ++ // Preview mode should not reset the owner ++ if (!this._previewMode && !oldTab.selected) ++ oldTab.owner = null; ++ ++ let lastRelatedTab = this.mLastRelatedIndex ? this.tabs[this.mLastRelatedIndex] : null; ++ if (lastRelatedTab) { ++ if (!lastRelatedTab.selected) ++ lastRelatedTab.owner = null; ++ } ++ + newBrowser.setAttribute("primary", "true"); + this.mCurrentBrowser = newBrowser; + this.mCurrentTab = this.selectedTab; + this.mCurrentTab.removeAttribute("unread"); + this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.addResultListener(l)); + + var tabListener = this.mTabListeners[this.tabContainer.selectedIndex]; + +@@ -1445,16 +1457,19 @@ + opener: null, + }; + } + + params.focusNewTab = params.inBackground != null ? + !params.inBackground : + !Services.prefs.getBoolPref("browser.tabs.loadInBackground"); + ++ if (params.focusNewTab) ++ params.ownerTab = this.selectedTab; ++ + return this.addTab(aURI, params); + ]]> + + + + + + +@@ -1556,43 +1571,49 @@ + + + + + index) + newIndex = currentIndex - 1; + else if (currentIndex < index) + newIndex = currentIndex; +@@ -2033,17 +2069,21 @@ + this._browsers = null; + + // Clean up before/afterselected attributes before removing the tab + aTab._selected = false; + aTab.remove(); + + // When the current tab is removed select a new tab + // and fire select events on tabpanels and tabs +- if (this.mPreviousTab && (aTab == this.mCurrentTab)) ++ if (aTab.owner && !aTab.owner.hidden && !aTab.owner.closing && ++ Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")) { ++ this.selectedTab = aTab.owner; ++ } ++ else if (this.mPreviousTab && (aTab == this.mCurrentTab)) + this.selectedTab = this.mPreviousTab; + else { + this.tabContainer.selectedIndex = newIndex; + + // We need to explicitly clear this, because updateCurrentBrowser + // doesn't get called for a background tab + this.mPreviousTab = null; + } -- cgit v1.2.3-65-gdbad