Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 763503 Details for
Bug 831977
www-client/seamonkey-2.53.10.2 version bump
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
fixed patch
seamonkey-2.53.10.2-ownertab.patch (text/plain), 9.49 KB, created by
yury fedorchenko
on 2022-01-24 14:32:12 UTC
(
hide
)
Description:
fixed patch
Filename:
MIME Type:
Creator:
yury fedorchenko
Created:
2022-01-24 14:32:12 UTC
Size:
9.49 KB
patch
obsolete
>--- seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js >+++ seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js >@@ -229,6 +229,7 @@ > pref("browser.tabs.maxOpenBeforeWarn", 15); > pref("browser.tabs.insertRelatedAfterCurrent", true); > pref("browser.tabs.insertAllTabsAfterCurrent", false); >+pref("browser.tabs.selectOwnerOnClose", true); > pref("browser.tabs.avoidBrowserFocus", false); > > // For future use@@ -225,16 +225,17 @@ pref("browser.tabs.autoHide", 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); > ]]> > </body> > </method> > > <method name="loadTabs"> > <parameter name="aURIs"/> > <parameter name="aLoadInBackground"/> >@@ -1556,43 +1571,49 @@ > <parameter name="aPostData"/> > <parameter name="aFocusNewTab"/> > <parameter name="aAllowThirdPartyFixup"/> > <body> > <![CDATA[ > var aTriggeringPrincipal; > var aReferrerPolicy; > var aFromExternal; >+ var aOwner; > var aRelatedToCurrent; > var aAllowMixedContent; > var aNoReferrer; > var aUserContextId; > var aOriginPrincipal; > var aOpener; > if (arguments.length == 2 && > arguments[1] != null && > typeof arguments[1] == "object" && > !(arguments[1] instanceof Ci.nsIURI)) { > let params = arguments[1]; > aTriggeringPrincipal = params.triggeringPrincipal; > aReferrerURI = params.referrerURI; > aReferrerPolicy = params.referrerPolicy; > aCharset = params.charset; > aPostData = params.postData; >+ aOwner = params.ownerTab; > aFocusNewTab = params.focusNewTab; > aAllowThirdPartyFixup = params.allowThirdPartyFixup; > aFromExternal = params.fromExternal; > aRelatedToCurrent = params.relatedToCurrent; > aAllowMixedContent = params.allowMixedContent; > aNoReferrer = params.noReferrer; > aUserContextId = params.userContextId; > aOriginPrincipal = params.originPrincipal; > aOpener = params.opener; > } > >+ // if we're adding tabs, we're past interrupt mode, ditch the owner >+ if (this.mCurrentTab.owner) >+ this.mCurrentTab.owner = null; >+ > this._browsers = null; // invalidate cache > > var t = this.referenceTab.cloneNode(true); > > var blank = !aURI || aURI == "about:blank"; > > if (!blank) > t.setAttribute("label", aURI); >@@ -1640,16 +1661,20 @@ > > // We start our browsers out as inactive. > b.docShellIsActive = false; > > this.mStrip.collapsed = false; > > Services.prefs.setBoolPref("browser.tabs.forceHide", false); > >+ // If this new tab is owned by another, assert that relationship >+ if (aOwner) >+ t.owner = aOwner; >+ > // wire up a progress listener for the new browser object. > var position = this.tabs.length - 1; > var tabListener = this.mTabProgressListener(t, b, blank); > const filter = Cc["@mozilla.org/appshell/component/browser-status-filter;1"] > .createInstance(Ci.nsIWebProgress); > filter.addProgressListener(tabListener, Ci.nsIWebProgress.NOTIFY_ALL); > b.webProgress.addProgressListener(filter, Ci.nsIWebProgress.NOTIFY_ALL); > this.mTabListeners[position] = tabListener; >@@ -1689,16 +1714,20 @@ > // aReferrerURI is null or undefined if the tab is opened from > // an external application or bookmark, i.e. somewhere other > // than the current tab. > if ((aRelatedToCurrent || aReferrerURI || > Services.prefs.getBoolPref("browser.tabs.insertAllTabsAfterCurrent")) && > Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) { > var lastRelatedIndex = this.mLastRelatedIndex || > this.tabContainer.selectedIndex; >+ if (this.mLastRelatedIndex) >+ this.tabs[this.mLastRelatedIndex].owner = null; >+ else >+ t.owner = this.selectedTab; > this.moveTabTo(t, ++lastRelatedIndex); > this.mLastRelatedIndex = lastRelatedIndex; > } > > if (aFocusNewTab) { > var parentTab = this.selectedTab; > this.selectedTab = t; > this.mPreviousTab = parentTab; >@@ -2007,16 +2036,23 @@ > oldBrowser.webProgress.removeProgressListener(filter); > filter.removeProgressListener(this.mTabListeners[index]); > this.mTabFilters.splice(index, 1); > this.mTabListeners.splice(index, 1); > > // We are no longer the primary content area > oldBrowser.removeAttribute("primary"); > >+ // Remove this tab as the owner of any other tabs, since it's going away. >+ for (let tab of this.tabs) { >+ if ("owner" in tab && tab.owner == aTab) >+ // |tab| is a child of the tab we're removing, make it an orphan >+ tab.owner = null; >+ } >+ > // Now select the new tab before nuking the old one. > var currentIndex = this.tabContainer.selectedIndex; > > var newIndex = -1; > if (currentIndex > 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; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 831977
:
763502
| 763503