[Pkg-mozext-commits] [tabmixplus] 18/51: Move updateVerticalTabStrip to Tabmix.tabsUtils

David Prévot taffit at moszumanska.debian.org
Mon Feb 2 18:36:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository tabmixplus.

commit 2642e28ec44a3b0c1a0532d10750c20e6f9b96b7
Author: onemen <tabmix.onemen at gmail.com>
Date:   Fri Jan 2 23:43:27 2015 +0200

    Move updateVerticalTabStrip to Tabmix.tabsUtils
---
 chrome/content/minit/tablib.js      |  4 +-
 chrome/content/tab/scrollbox.xml    |  6 +--
 chrome/content/tab/tab.js           | 84 +++++++++++++++++++++++++++++++++----
 chrome/content/tab/tabbrowser_4.xml | 84 -------------------------------------
 chrome/content/tabmix.js            |  9 +---
 5 files changed, 84 insertions(+), 103 deletions(-)

diff --git a/chrome/content/minit/tablib.js b/chrome/content/minit/tablib.js
index b368473..d98bcc1 100644
--- a/chrome/content/minit/tablib.js
+++ b/chrome/content/minit/tablib.js
@@ -1009,7 +1009,7 @@ var tablib = {
     gBrowser.closeAllTabs = function TMP_closeAllTabs() {
       if (this.warnAboutClosingTabs(this.closingTabsEnum.ALL)) {
         if (TabmixTabbar.visibleRows > 1)
-          this.tabContainer.updateVerticalTabStrip(true);
+          Tabmix.tabsUtils.updateVerticalTabStrip(true);
         let tabs = this.visibleTabs.slice();
         // remove current tab last
         if (!this.mCurrentTab.pinned)
@@ -1112,7 +1112,7 @@ var tablib = {
         this.ensureTabIsVisible(this.selectedTab);
         var childNodes = this.visibleTabs;
         if (TabmixTabbar.visibleRows > 1)
-          this.tabContainer.updateVerticalTabStrip(true);
+          Tabmix.tabsUtils.updateVerticalTabStrip(true);
         Tabmix.startCountingClosedTabs();
         for (var i = childNodes.length - 1; i >= 0; --i) {
           if (childNodes[i] != aTab && !childNodes[i].pinned)
diff --git a/chrome/content/tab/scrollbox.xml b/chrome/content/tab/scrollbox.xml
index f3ec86e..502c81e 100644
--- a/chrome/content/tab/scrollbox.xml
+++ b/chrome/content/tab/scrollbox.xml
@@ -422,7 +422,7 @@
             this.orient = "vertical";
             Tabmix.setItem(tabBar, "multibar", true);
             Tabmix.setItem("TabsToolbar", "multibar", true);
-            if (tabBar.updateVerticalTabStrip() == null)
+            if (Tabmix.tabsUtils.updateVerticalTabStrip() == null)
               TabmixTabbar._failedToEnterVerticalMode = true;
             if (blockUnderflow && this.orient == "vertical")
               this.blockUnderflow = true;
@@ -569,7 +569,7 @@
           if (!TabmixSvc.isLinux || TabmixTabbar.visibleRows == 1 ||
               (!Tabmix.visibleTabs.last.hasAttribute("showbutton") &&
                !Tabmix.visibleTabs.last.hasAttribute("showbutton_removed")))
-            tabs.updateVerticalTabStrip();
+            Tabmix.tabsUtils.updateVerticalTabStrip();
         }
         else
           Tabmix.tabsUtils.overflow = false;
@@ -619,7 +619,7 @@
           // we show close button on tab on hover
           if (!TabmixSvc.isLinux || TabmixTabbar.visibleRows == 1 ||
               !Tabmix.visibleTabs.last.hasAttribute("showbutton"))
-            tabs.updateVerticalTabStrip();
+            Tabmix.tabsUtils.updateVerticalTabStrip();
         }
         else
           Tabmix.tabsUtils.overflow = true;
diff --git a/chrome/content/tab/tab.js b/chrome/content/tab/tab.js
index d83436f..4a46c8f 100644
--- a/chrome/content/tab/tab.js
+++ b/chrome/content/tab/tab.js
@@ -91,14 +91,14 @@ var TabmixTabbar = {
 
       if (prevTabscroll == this.SCROLL_BUTTONS_MULTIROW) {
         tabBar.mTabstrip.resetFirstTabInRow();
-        tabBar.updateVerticalTabStrip(true);
+        Tabmix.tabsUtils.updateVerticalTabStrip(true);
       }
       else if (isMultiRow && overflow) {
         // if we are in overflow in one line we will have more then one line
         // in multi-row. we try to prevent extra over/underflow events by setting
         // the height in front.
         tabStrip.orient = "vertical";
-        if (tabBar.updateVerticalTabStrip() == "scrollbar")
+        if (Tabmix.tabsUtils.updateVerticalTabStrip() == "scrollbar")
           Tabmix.tabsUtils.overflow = true;
       }
       Tabmix.setItem(tabmixScrollBox, "collapsed", null);
@@ -190,7 +190,7 @@ var TabmixTabbar = {
       // for other chases we need to call it when we change title
       if (tabBar.mTabstrip.orient == "vertical") {
         this.setFirstTabInRow();
-        tabBar.updateVerticalTabStrip();
+        Tabmix.tabsUtils.updateVerticalTabStrip();
       }
       // with Australis overflow not always trigger when tab changed width
       else if (TabmixSvc.australis && !this.widthFitTitle) {
@@ -355,10 +355,10 @@ var TabmixTabbar = {
       if (tabBar.mTabstrip.orient != "vertical")
         tabBar.mTabstrip._enterVerticalMode();
       else
-        tabBar.updateVerticalTabStrip();
+        Tabmix.tabsUtils.updateVerticalTabStrip();
 
       if (this.position == 1)
-        setTimeout(function(){tabBar.updateVerticalTabStrip();},0);
+        setTimeout(function(){Tabmix.tabsUtils.updateVerticalTabStrip();},0);
 
       this.updateBeforeAndAfter();
     }
@@ -693,6 +693,76 @@ Tabmix.tabsUtils = {
     }
   },
 
+  updateVerticalTabStrip: function(aReset) {
+    if (Tabmix.extensions.verticalTabBar || gInPrintPreviewMode || FullScreen._isChromeCollapsed ||
+        !this.tabBar.visible && TabmixTabbar.visibleRows == 1)
+      return null;
+    if (this._inUpdateVerticalTabStrip)
+      return this.tabBar.getAttribute("multibar");
+    this._inUpdateVerticalTabStrip = true;
+
+    // we must adjustNewtabButtonvisibility before get lastTabRowNumber
+    this.adjustNewtabButtonvisibility();
+    // this.lastTabRowNumber is null when we hide the tabbar
+    let rows = aReset || this.tabBar.childNodes.length == 1 ? 1 : (this.lastTabRowNumber || 1);
+
+    let currentMultibar = this.tabBar.getAttribute("multibar") || null;
+    let maxRow = Tabmix.prefs.getIntPref("tabBarMaxRow");
+    // we need to check for the case that last row of tabs is empty and we still have hidden row on top
+    // this can occur when we close last tab in the last row or when some tab changed width
+    if (rows > 1 && rows - maxRow < 0 && this.overflow &&
+        this.canScrollTabsLeft) {
+      // try to scroll all the way up
+      this.tabBar.mTabstrip.scrollByPixels((rows - maxRow) * this.tabBar.mTabstrip.singleRowHeight);
+      // get lastTabRowNumber after the scroll
+      rows = this.lastTabRowNumber;
+    }
+
+    let multibar;
+    if (rows == 1)
+      multibar = null; // removeAttribute "multibar"
+    else if (rows > maxRow)
+      [multibar, rows] = ["scrollbar", maxRow];
+    else
+      multibar = "true";
+
+    if (currentMultibar != multibar) {
+      Tabmix.setItem(this.tabBar, "multibar", multibar);
+      Tabmix.setItem("TabsToolbar", "multibar", multibar);
+    }
+
+    this.setTabStripOrient();
+    TabmixTabbar.setHeight(rows, aReset);
+
+    if (this.tabBar.mTabstrip.orient == "vertical")
+      this.overflow = multibar == "scrollbar";
+
+    if (!this.overflow) {
+      // prevent new-tab-button on the right from flickering when new tabs animate is on.
+      if (this.disAllowNewtabbutton &&
+          Services.prefs.getBoolPref("browser.tabs.animate")) {
+        // after 250ms new tab is fully opened
+        if (!this.adjustNewtabButtonTimeout) {
+          let timeout = 250, callerName = Tabmix.callerName();
+          if (callerName == "onxbloverflow") {
+            let timeFromLastTabOpened = Date.now() - Tabmix._lastTabOpenedTime;
+            if (timeFromLastTabOpened < 250)
+              timeout = 0;
+          }
+          this.adjustNewtabButtonTimeout = setTimeout(function() {
+            this.adjustNewtabButtonvisibility();
+            this.adjustNewtabButtonTimeout = null;
+          }.bind(this), timeout);
+        }
+      }
+      else
+        this.adjustNewtabButtonvisibility();
+    }
+
+    this._inUpdateVerticalTabStrip = false;
+    return multibar;
+  },
+
   setTabStripOrient: function() {
     // we can't set dispaly:block and orient=vertical when widthFitTitle is false
     // and we are in one row.
@@ -1251,7 +1321,7 @@ var gTMPprefObserver = {
             if (Tabmix.tabsUtils.overflow && row > TabmixTabbar.visibleRows)
               Tabmix.tabsUtils.overflow = false;
             // after we update the height check if we are still in overflow
-            if (tabBar.updateVerticalTabStrip() == "scrollbar") {
+            if (Tabmix.tabsUtils.updateVerticalTabStrip() == "scrollbar") {
               Tabmix.tabsUtils.overflow = true;
               tabBar.mTabstrip._updateScrollButtonsDisabledState();
               if (isVisible)
@@ -1271,7 +1341,7 @@ var gTMPprefObserver = {
         // multi-rows total heights can be diffrent when tabs are on top
         if (TabmixTabbar.visibleRows > 1) {
           TabmixTabbar.setHeight(1, true);
-          gBrowser.tabContainer.updateVerticalTabStrip();
+          Tabmix.tabsUtils.updateVerticalTabStrip();
         }
         break;
       case "extensions.tabmix.hideTabBarButton":
diff --git a/chrome/content/tab/tabbrowser_4.xml b/chrome/content/tab/tabbrowser_4.xml
index 83f25e0..21107a7 100644
--- a/chrome/content/tab/tabbrowser_4.xml
+++ b/chrome/content/tab/tabbrowser_4.xml
@@ -350,90 +350,6 @@
         ]]>
       </constructor>
 
-      <method name="updateVerticalTabStrip">
-        <parameter name="aReset"/>
-        <body><![CDATA[
-          if (Tabmix.extensions.verticalTabBar || gInPrintPreviewMode || FullScreen._isChromeCollapsed ||
-              !this.visible && TabmixTabbar.visibleRows == 1)
-            return null;
-          if (this._inUpdateVerticalTabStrip)
-            return this.getAttribute("multibar");
-          this._inUpdateVerticalTabStrip = true;
-
-          // we must adjustNewtabButtonvisibility before get lastTabRowNumber
-          Tabmix.tabsUtils.adjustNewtabButtonvisibility();
-          let visibleRows = TabmixTabbar.visibleRows;
-          // Tabmix.tabsUtils.lastTabRowNumber is null when we hide the tabbar
-          let rows = aReset || this.childNodes.length == 1 ? 1 : (Tabmix.tabsUtils.lastTabRowNumber || 1);
-
-          let currentMultibar = this.getAttribute("multibar") || null;
-          let maxRow = Tabmix.prefs.getIntPref("tabBarMaxRow");
-          // we need to check for the case that last row of tabs is empty and we still have hidden row on top
-          // this can occur when we close last tab in the last row or when some tab changed width
-          if (rows > 1 && rows - maxRow < 0 && Tabmix.tabsUtils.overflow &&
-              Tabmix.tabsUtils.canScrollTabsLeft) {
-            // try to scroll all the way up
-            this.mTabstrip.scrollByPixels((rows - maxRow) * this.mTabstrip.singleRowHeight);
-            // get lastTabRowNumber after the scroll
-            rows = Tabmix.tabsUtils.lastTabRowNumber;
-          }
-
-          let multibar;
-          if (rows == 1)
-            multibar = null; // removeAttribute "multibar"
-          else if (rows > maxRow)
-            [multibar, rows] = ["scrollbar", maxRow];
-          else
-            multibar = "true"
-
-          if (currentMultibar != multibar) {
-            Tabmix.setItem(this, "multibar", multibar);
-            Tabmix.setItem("TabsToolbar", "multibar", multibar);
-          }
-
-          Tabmix.tabsUtils.setTabStripOrient();
-          TabmixTabbar.setHeight(rows, aReset);
-
-          if (this.mTabstrip.orient == "vertical")
-            Tabmix.tabsUtils.overflow = multibar == "scrollbar";
-
-          if (!Tabmix.tabsUtils.overflow) {
-            // prevent new-tab-button on the right from flickering when new tabs animate is on.
-            if (Tabmix.tabsUtils.disAllowNewtabbutton &&
-                Services.prefs.getBoolPref("browser.tabs.animate")) {
-              // after 250ms new tab is fully opened
-              if (!this.adjustNewtabButtonTimeout) {
-                let timeout = 250, callerName = Tabmix.callerName();
-                if (callerName == "onxbloverflow") {
-                  let timeFromLastTabOpenedTime = Date.now() - Tabmix._lastTabOpenedTime;
-                  if (timeFromLastTabOpenedTime < 250)
-                    timeout = 0;
-                }
-              /**
-                no need to change newTabButton visibility in order to calculate
-                its position
-                // Don't reset adjustNewtabButtonvisibility if multibar or rows
-                // didn't changed or when we get here from _enterVerticalMode
-                if (callerName != "_enterVerticalMode" &&
-                     (multibar != currentMultibar || rows != visibleRows))
-                  Tabmix.tabsUtils.disAllowNewtabbutton = false;
-               */
-                let self = this;
-                this.adjustNewtabButtonTimeout = setTimeout(function() {
-                  Tabmix.tabsUtils.adjustNewtabButtonvisibility();
-                  self.adjustNewtabButtonTimeout = null;
-                }, timeout);
-              }
-            }
-            else
-              Tabmix.tabsUtils.adjustNewtabButtonvisibility();
-          }
-
-          this._inUpdateVerticalTabStrip = false;
-          return multibar;
-        ]]></body>
-      </method>
-
       <method name="_notifyBackgroundTab">
         <parameter name="aTab"/>
         <body><![CDATA[
diff --git a/chrome/content/tabmix.js b/chrome/content/tabmix.js
index 4bfe832..003d241 100644
--- a/chrome/content/tabmix.js
+++ b/chrome/content/tabmix.js
@@ -748,7 +748,7 @@ var TMP_eventListener = {
     if (aReset)
       Tabmix.tabsNewtabButton = null;
     if (TabmixTabbar.isMultiRow) {
-      gBrowser.tabContainer.updateVerticalTabStrip();
+      Tabmix.tabsUtils.updateVerticalTabStrip();
       TabmixTabbar.setFirstTabInRow();
       TabmixTabbar.updateBeforeAndAfter();
     }
@@ -875,7 +875,7 @@ var TMP_eventListener = {
     function _updateTabstrip() {
       if (tabBar.getAttribute("multibar") == "true" &&
           Tabmix.tabsUtils.lastTabRowNumber < TabmixTabbar.visibleRows)
-        tabBar.updateVerticalTabStrip();
+        Tabmix.tabsUtils.updateVerticalTabStrip();
       TabmixTabbar.updateBeforeAndAfter();
     }
 
@@ -1144,11 +1144,6 @@ Tabmix.initialization = {
       stopInitialization = tmp.SingleWindowModeUtils.newWindow(window);
     }
 
-    if (!stopInitialization) {
-      let tabBrowser = arguments.length > 1 ? arguments[1] : gBrowser;
-      stopInitialization = typeof tabBrowser.tabContainer.updateVerticalTabStrip != "function";
-    }
-
     if (stopInitialization) {
       this.run = function() {};
       window.removeEventListener("DOMContentLoaded", TMP_eventListener, false);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git



More information about the Pkg-mozext-commits mailing list