Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 831977
Collapse All | Expand All

(-)file_not_specified_in_diff (-4 / +47 lines)
Line  Link Here
0
-- seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js
0
++ seamonkey-2.53.7/comm/suite/app/profile/suite-prefs.js
Lines 229-234 Link Here
229
pref("browser.tabs.maxOpenBeforeWarn", 15);
229
pref("browser.tabs.maxOpenBeforeWarn", 15);
230
pref("browser.tabs.insertRelatedAfterCurrent", true);
230
pref("browser.tabs.insertRelatedAfterCurrent", true);
231
pref("browser.tabs.insertAllTabsAfterCurrent", false);
231
pref("browser.tabs.insertAllTabsAfterCurrent", false);
232
pref("browser.tabs.selectOwnerOnClose", true);
232
pref("browser.tabs.avoidBrowserFocus", false);
233
pref("browser.tabs.avoidBrowserFocus", false);
233
234
234
// For future use@@ -225,16 +225,17 @@ pref("browser.tabs.autoHide", false);
235
// For future use@@ -225,16 +225,17 @@ pref("browser.tabs.autoHide", false);
235
-- seamonkey-2.53.7/comm/suite/base/content/utilityOverlay.js
236
++ seamonkey-2.53.7/comm/suite/base/content/utilityOverlay.js
Lines 1624-1644 function openLinkIn(url, where, params) Link Here
1624
    // forces tab to be focused
1624
    // forces tab to be focused
1625
    loadInBackground = true;
1625
    loadInBackground = true;
1626
    // fall through
1626
    // fall through
1627
  case "tabshifted":
1627
  case "tabshifted":
1628
    loadInBackground = !loadInBackground;
1628
    loadInBackground = !loadInBackground;
1629
    // fall through
1629
    // fall through
1630
  case "tab":
1630
  case "tab":
1631
    var browser = w.getBrowser();
1631
    var browser = w.getBrowser();
1632
    var owner = loadInBackground ? null : browser.selectedTab;
1632
    var tab = browser.addTab(url, {
1633
    var tab = browser.addTab(url, {
1633
                referrerURI: aReferrerURI,
1634
                referrerURI: aReferrerURI,
1634
                referrerPolicy: aReferrerPolicy,
1635
                referrerPolicy: aReferrerPolicy,
1635
                charset: aCharset,
1636
                charset: aCharset,
1636
                postData: aPostData,
1637
                postData: aPostData,
1638
                ownerTab: owner,
1637
                allowThirdPartyFixup: aAllowThirdPartyFixup,
1639
                allowThirdPartyFixup: aAllowThirdPartyFixup,
1638
                relatedToCurrent: aRelatedToCurrent,
1640
                relatedToCurrent: aRelatedToCurrent,
1639
                allowMixedContent: aAllowMixedContent,
1641
                allowMixedContent: aAllowMixedContent,
1640
                noReferrer: aNoReferrer,
1642
                noReferrer: aNoReferrer,
1641
                userContextId: aUserContextId,
1643
                userContextId: aUserContextId,
1642
                originPrincipal: aPrincipal,
1644
                originPrincipal: aPrincipal,
1643
                triggeringPrincipal: aTriggeringPrincipal,
1645
                triggeringPrincipal: aTriggeringPrincipal,
1644
              });
1646
              });
1645
-- seamonkey-2.53.7/comm/suite/browser/tabbrowser.xml
1647
++ seamonkey-2.53.7/comm/suite/browser/tabbrowser.xml
Lines 1151-1166 Link Here
1151
            newBrowser.docShellIsActive = this.mCurrentTab.linkedBrowser.docShellIsActive;
1151
            newBrowser.docShellIsActive = this.mCurrentTab.linkedBrowser.docShellIsActive;
1152
            if (this.mCurrentBrowser) {
1152
            if (this.mCurrentBrowser) {
1153
              this.mCurrentBrowser.droppedLinkHandler = null;
1153
              this.mCurrentBrowser.droppedLinkHandler = null;
1154
              this.mCurrentBrowser.docShellIsActive = false;
1154
              this.mCurrentBrowser.docShellIsActive = false;
1155
              this.mCurrentBrowser.removeAttribute("primary");
1155
              this.mCurrentBrowser.removeAttribute("primary");
1156
              this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.removeResultListener(l));
1156
              this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.removeResultListener(l));
1157
            }
1157
            }
1158
1158
1159
            var oldTab = this.mCurrentTab;
1160
1161
            // Preview mode should not reset the owner
1162
            if (!this._previewMode && !oldTab.selected)
1163
              oldTab.owner = null;
1164
1165
            let lastRelatedTab = this.mLastRelatedIndex ? this.tabs[this.mLastRelatedIndex] : null;
1166
            if (lastRelatedTab) {
1167
              if (!lastRelatedTab.selected)
1168
                lastRelatedTab.owner = null;
1169
            }
1170
1159
            newBrowser.setAttribute("primary", "true");
1171
            newBrowser.setAttribute("primary", "true");
1160
            this.mCurrentBrowser = newBrowser;
1172
            this.mCurrentBrowser = newBrowser;
1161
            this.mCurrentTab = this.selectedTab;
1173
            this.mCurrentTab = this.selectedTab;
1162
            this.mCurrentTab.removeAttribute("unread");
1174
            this.mCurrentTab.removeAttribute("unread");
1163
            this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.addResultListener(l));
1175
            this.finder.mListeners.forEach(l => this.mCurrentBrowser.finder.addResultListener(l));
1164
1176
1165
            var tabListener = this.mTabListeners[this.tabContainer.selectedIndex];
1177
            var tabListener = this.mTabListeners[this.tabContainer.selectedIndex];
1166
1178
Lines 1445-1460 Link Here
1445
                opener: null,
1457
                opener: null,
1446
              };
1458
              };
1447
            }
1459
            }
1448
1460
1449
            params.focusNewTab = params.inBackground != null ?
1461
            params.focusNewTab = params.inBackground != null ?
1450
                !params.inBackground :
1462
                !params.inBackground :
1451
                !Services.prefs.getBoolPref("browser.tabs.loadInBackground");
1463
                !Services.prefs.getBoolPref("browser.tabs.loadInBackground");
1452
1464
1465
            if (params.focusNewTab)
1466
              params.ownerTab = this.selectedTab;
1467
1453
            return this.addTab(aURI, params);
1468
            return this.addTab(aURI, params);
1454
         ]]>
1469
         ]]>
1455
        </body>
1470
        </body>
1456
      </method>
1471
      </method>
1457
1472
1458
      <method name="loadTabs">
1473
      <method name="loadTabs">
1459
        <parameter name="aURIs"/>
1474
        <parameter name="aURIs"/>
1460
        <parameter name="aLoadInBackground"/>
1475
        <parameter name="aLoadInBackground"/>
Lines 1556-1598 Link Here
1556
        <parameter name="aPostData"/>
1571
        <parameter name="aPostData"/>
1557
        <parameter name="aFocusNewTab"/>
1572
        <parameter name="aFocusNewTab"/>
1558
        <parameter name="aAllowThirdPartyFixup"/>
1573
        <parameter name="aAllowThirdPartyFixup"/>
1559
        <body>
1574
        <body>
1560
          <![CDATA[
1575
          <![CDATA[
1561
            var aTriggeringPrincipal;
1576
            var aTriggeringPrincipal;
1562
            var aReferrerPolicy;
1577
            var aReferrerPolicy;
1563
            var aFromExternal;
1578
            var aFromExternal;
1579
            var aOwner;
1564
            var aRelatedToCurrent;
1580
            var aRelatedToCurrent;
1565
            var aAllowMixedContent;
1581
            var aAllowMixedContent;
1566
            var aNoReferrer;
1582
            var aNoReferrer;
1567
            var aUserContextId;
1583
            var aUserContextId;
1568
            var aOriginPrincipal;
1584
            var aOriginPrincipal;
1569
            var aOpener;
1585
            var aOpener;
1570
            if (arguments.length == 2 &&
1586
            if (arguments.length == 2 &&
1571
                arguments[1] != null &&
1587
                arguments[1] != null &&
1572
                typeof arguments[1] == "object" &&
1588
                typeof arguments[1] == "object" &&
1573
                !(arguments[1] instanceof Ci.nsIURI)) {
1589
                !(arguments[1] instanceof Ci.nsIURI)) {
1574
              let params = arguments[1];
1590
              let params = arguments[1];
1575
              aTriggeringPrincipal  = params.triggeringPrincipal;
1591
              aTriggeringPrincipal  = params.triggeringPrincipal;
1576
              aReferrerURI          = params.referrerURI;
1592
              aReferrerURI          = params.referrerURI;
1577
              aReferrerPolicy       = params.referrerPolicy;
1593
              aReferrerPolicy       = params.referrerPolicy;
1578
              aCharset              = params.charset;
1594
              aCharset              = params.charset;
1579
              aPostData             = params.postData;
1595
              aPostData             = params.postData;
1596
              aOwner                = params.ownerTab;
1580
              aFocusNewTab          = params.focusNewTab;
1597
              aFocusNewTab          = params.focusNewTab;
1581
              aAllowThirdPartyFixup = params.allowThirdPartyFixup;
1598
              aAllowThirdPartyFixup = params.allowThirdPartyFixup;
1582
              aFromExternal         = params.fromExternal;
1599
              aFromExternal         = params.fromExternal;
1583
              aRelatedToCurrent     = params.relatedToCurrent;
1600
              aRelatedToCurrent     = params.relatedToCurrent;
1584
              aAllowMixedContent    = params.allowMixedContent;
1601
              aAllowMixedContent    = params.allowMixedContent;
1585
              aNoReferrer           = params.noReferrer;
1602
              aNoReferrer           = params.noReferrer;
1586
              aUserContextId        = params.userContextId;
1603
              aUserContextId        = params.userContextId;
1587
              aOriginPrincipal      = params.originPrincipal;
1604
              aOriginPrincipal      = params.originPrincipal;
1588
              aOpener               = params.opener;
1605
              aOpener               = params.opener;
1589
            }
1606
            }
1590
1607
1608
            // if we're adding tabs, we're past interrupt mode, ditch the owner
1609
            if (this.mCurrentTab.owner)
1610
              this.mCurrentTab.owner = null;
1611
1591
            this._browsers = null; // invalidate cache
1612
            this._browsers = null; // invalidate cache
1592
1613
1593
            var t = this.referenceTab.cloneNode(true);
1614
            var t = this.referenceTab.cloneNode(true);
1594
1615
1595
            var blank = !aURI || aURI == "about:blank";
1616
            var blank = !aURI || aURI == "about:blank";
1596
1617
1597
            if (!blank)
1618
            if (!blank)
1598
              t.setAttribute("label", aURI);
1619
              t.setAttribute("label", aURI);
Lines 1640-1655 Link Here
1640
1661
1641
            // We start our browsers out as inactive.
1662
            // We start our browsers out as inactive.
1642
            b.docShellIsActive = false;
1663
            b.docShellIsActive = false;
1643
1664
1644
            this.mStrip.collapsed = false;
1665
            this.mStrip.collapsed = false;
1645
1666
1646
            Services.prefs.setBoolPref("browser.tabs.forceHide", false);
1667
            Services.prefs.setBoolPref("browser.tabs.forceHide", false);
1647
1668
1669
            // If this new tab is owned by another, assert that relationship
1670
            if (aOwner)
1671
              t.owner = aOwner;
1672
1648
            // wire up a progress listener for the new browser object.
1673
            // wire up a progress listener for the new browser object.
1649
            var position = this.tabs.length - 1;
1674
            var position = this.tabs.length - 1;
1650
            var tabListener = this.mTabProgressListener(t, b, blank);
1675
            var tabListener = this.mTabProgressListener(t, b, blank);
1651
            const filter = Cc["@mozilla.org/appshell/component/browser-status-filter;1"]
1676
            const filter = Cc["@mozilla.org/appshell/component/browser-status-filter;1"]
1652
                             .createInstance(Ci.nsIWebProgress);
1677
                             .createInstance(Ci.nsIWebProgress);
1653
            filter.addProgressListener(tabListener, Ci.nsIWebProgress.NOTIFY_ALL);
1678
            filter.addProgressListener(tabListener, Ci.nsIWebProgress.NOTIFY_ALL);
1654
            b.webProgress.addProgressListener(filter, Ci.nsIWebProgress.NOTIFY_ALL);
1679
            b.webProgress.addProgressListener(filter, Ci.nsIWebProgress.NOTIFY_ALL);
1655
            this.mTabListeners[position] = tabListener;
1680
            this.mTabListeners[position] = tabListener;
Lines 1689-1704 Link Here
1689
            // aReferrerURI is null or undefined if the tab is opened from
1714
            // aReferrerURI is null or undefined if the tab is opened from
1690
            // an external application or bookmark, i.e. somewhere other
1715
            // an external application or bookmark, i.e. somewhere other
1691
            // than the current tab.
1716
            // than the current tab.
1692
            if ((aRelatedToCurrent || aReferrerURI ||
1717
            if ((aRelatedToCurrent || aReferrerURI ||
1693
                 Services.prefs.getBoolPref("browser.tabs.insertAllTabsAfterCurrent")) &&
1718
                 Services.prefs.getBoolPref("browser.tabs.insertAllTabsAfterCurrent")) &&
1694
                Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) {
1719
                Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) {
1695
              var lastRelatedIndex = this.mLastRelatedIndex ||
1720
              var lastRelatedIndex = this.mLastRelatedIndex ||
1696
                                     this.tabContainer.selectedIndex;
1721
                                     this.tabContainer.selectedIndex;
1722
              if (this.mLastRelatedIndex)
1723
                  this.tabs[this.mLastRelatedIndex].owner = null;
1724
              else
1725
                  t.owner = this.selectedTab;
1697
              this.moveTabTo(t, ++lastRelatedIndex);
1726
              this.moveTabTo(t, ++lastRelatedIndex);
1698
              this.mLastRelatedIndex = lastRelatedIndex;
1727
              this.mLastRelatedIndex = lastRelatedIndex;
1699
            }
1728
            }
1700
1729
1701
            if (aFocusNewTab) {
1730
            if (aFocusNewTab) {
1702
              var parentTab = this.selectedTab;
1731
              var parentTab = this.selectedTab;
1703
              this.selectedTab = t;
1732
              this.selectedTab = t;
1704
              this.mPreviousTab = parentTab;
1733
              this.mPreviousTab = parentTab;
Lines 2007-2022 Link Here
2007
            oldBrowser.webProgress.removeProgressListener(filter);
2036
            oldBrowser.webProgress.removeProgressListener(filter);
2008
            filter.removeProgressListener(this.mTabListeners[index]);
2037
            filter.removeProgressListener(this.mTabListeners[index]);
2009
            this.mTabFilters.splice(index, 1);
2038
            this.mTabFilters.splice(index, 1);
2010
            this.mTabListeners.splice(index, 1);
2039
            this.mTabListeners.splice(index, 1);
2011
2040
2012
            // We are no longer the primary content area
2041
            // We are no longer the primary content area
2013
            oldBrowser.removeAttribute("primary");
2042
            oldBrowser.removeAttribute("primary");
2014
2043
2044
            // Remove this tab as the owner of any other tabs, since it's going away.
2045
            for (let tab of this.tabs) {
2046
              if ("owner" in tab && tab.owner == aTab)
2047
                // |tab| is a child of the tab we're removing, make it an orphan
2048
                tab.owner = null;
2049
            }
2050
2015
            // Now select the new tab before nuking the old one.
2051
            // Now select the new tab before nuking the old one.
2016
            var currentIndex = this.tabContainer.selectedIndex;
2052
            var currentIndex = this.tabContainer.selectedIndex;
2017
2053
2018
            var newIndex = -1;
2054
            var newIndex = -1;
2019
            if (currentIndex > index)
2055
            if (currentIndex > index)
2020
              newIndex = currentIndex - 1;
2056
              newIndex = currentIndex - 1;
2021
            else if (currentIndex < index)
2057
            else if (currentIndex < index)
2022
              newIndex = currentIndex;
2058
              newIndex = currentIndex;
Lines 2033-2049 Link Here
2033
            this._browsers = null;
2069
            this._browsers = null;
2034
2070
2035
            // Clean up before/afterselected attributes before removing the tab
2071
            // Clean up before/afterselected attributes before removing the tab
2036
            aTab._selected = false;
2072
            aTab._selected = false;
2037
            aTab.remove();
2073
            aTab.remove();
2038
2074
2039
            // When the current tab is removed select a new tab
2075
            // When the current tab is removed select a new tab
2040
            // and fire select events on tabpanels and tabs
2076
            // and fire select events on tabpanels and tabs
2041
            if (this.mPreviousTab && (aTab == this.mCurrentTab))
2077
            if (aTab.owner && !aTab.owner.hidden && !aTab.owner.closing &&
2078
                Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")) {
2079
              this.selectedTab = aTab.owner;
2080
            }
2081
            else if (this.mPreviousTab && (aTab == this.mCurrentTab))
2042
              this.selectedTab = this.mPreviousTab;
2082
              this.selectedTab = this.mPreviousTab;
2043
            else {
2083
            else {
2044
              this.tabContainer.selectedIndex = newIndex;
2084
              this.tabContainer.selectedIndex = newIndex;
2045
2085
2046
              // We need to explicitly clear this, because updateCurrentBrowser
2086
              // We need to explicitly clear this, because updateCurrentBrowser
2047
              // doesn't get called for a background tab
2087
              // doesn't get called for a background tab
2048
              this.mPreviousTab = null;
2088
              this.mPreviousTab = null;
2049
            }
2089
            }

Return to bug 831977