[Pkg-mozext-commits] [tabmixplus] 17/51: Move overflow getter and setter 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 fa7ea524c151c90ac4741b38e5e5874f9f458e26
Author: onemen <tabmix.onemen at gmail.com>
Date:   Fri Jan 2 23:20:23 2015 +0200

    Move overflow getter and setter to Tabmix.tabsUtils
---
 chrome/content/minit/minit.js       |  2 +-
 chrome/content/minit/tablib.js      |  2 +-
 chrome/content/tab/scrollbox.xml    | 17 +++++++--------
 chrome/content/tab/tab.js           | 41 ++++++++++++++++++++++++++++---------
 chrome/content/tab/tabbrowser_4.xml | 31 +++++-----------------------
 chrome/content/tabmix.js            |  6 +++---
 6 files changed, 50 insertions(+), 49 deletions(-)

diff --git a/chrome/content/minit/minit.js b/chrome/content/minit/minit.js
index 6a84d4e..0745508 100644
--- a/chrome/content/minit/minit.js
+++ b/chrome/content/minit/minit.js
@@ -249,7 +249,7 @@ var TMP_tabDNDObserver = {
       }
     }
 
-    if (tabBar.overflow) {
+    if (Tabmix.tabsUtils.overflow) {
       let tabStrip = tabBar.mTabstrip;
       let ltr = Tabmix.ltr || tabStrip.orient == "vertical";
       let _scroll, targetAnonid;
diff --git a/chrome/content/minit/tablib.js b/chrome/content/minit/tablib.js
index 8ef8655..b368473 100644
--- a/chrome/content/minit/tablib.js
+++ b/chrome/content/minit/tablib.js
@@ -1580,7 +1580,7 @@ var tablib = {
     // Bug 752376 - Avoid calling scrollbox.ensureElementIsVisible()
     // if the tab strip doesn't overflow to prevent layout flushes
     gBrowser.ensureTabIsVisible = function tabmix_ensureTabIsVisible(aTab, aSmoothScroll) {
-      if (this.tabContainer.overflow)
+      if (Tabmix.tabsUtils.overflow)
         this.tabContainer.mTabstrip.ensureElementIsVisible(aTab, aSmoothScroll);
     };
 
diff --git a/chrome/content/tab/scrollbox.xml b/chrome/content/tab/scrollbox.xml
index 6200c33..f3ec86e 100644
--- a/chrome/content/tab/scrollbox.xml
+++ b/chrome/content/tab/scrollbox.xml
@@ -122,8 +122,9 @@
               this._scrollButtonUpLeft : this._scrollButtonUpRight;
           this._updateScrollButtonsDisabledState();
           if (!Tabmix.isVersion(320)) {
-            this._scrollButtonUp.collapsed = !tabContainer.overflow;
-            this._scrollButtonDown.collapsed = !tabContainer.overflow;
+            let overflow = Tabmix.tabsUtils.overflow;
+            this._scrollButtonUp.collapsed = !overflow;
+            this._scrollButtonDown.collapsed = !overflow;
           }
         ]]></body>
       </method>
@@ -425,7 +426,7 @@
               TabmixTabbar._failedToEnterVerticalMode = true;
             if (blockUnderflow && this.orient == "vertical")
               this.blockUnderflow = true;
-            this.updateOverflow(tabBar.overflow);
+            this.updateOverflow(Tabmix.tabsUtils.overflow);
           }
         ]]></body>
       </method>
@@ -562,7 +563,7 @@
         }
 
         var tabs = document.getBindingParent(this);
-        if (tabs.hasAttribute("multibar") && tabs.overflow) {
+        if (tabs.hasAttribute("multibar") && Tabmix.tabsUtils.overflow) {
           //XXX don't do anything on Linux when hovering last tab and
           // we show close button on tab on hover
           if (!TabmixSvc.isLinux || TabmixTabbar.visibleRows == 1 ||
@@ -571,9 +572,9 @@
             tabs.updateVerticalTabStrip();
         }
         else
-          tabs.overflow = false;
+          Tabmix.tabsUtils.overflow = false;
 
-        this.updateOverflow(tabs.overflow);
+        this.updateOverflow(Tabmix.tabsUtils.overflow);
 
         if (tabs._lastTabClosedByMouse)
           tabs._expandSpacerBy(this._scrollButtonDown.clientWidth);
@@ -621,9 +622,9 @@
             tabs.updateVerticalTabStrip();
         }
         else
-          tabs.overflow = true;
+          Tabmix.tabsUtils.overflow = true;
 
-        this.updateOverflow(tabs.overflow);
+        this.updateOverflow(Tabmix.tabsUtils.overflow);
 
         tabs._positionPinnedTabs();
         if (Tabmix.isVersion(190))
diff --git a/chrome/content/tab/tab.js b/chrome/content/tab/tab.js
index ded79a3..d83436f 100644
--- a/chrome/content/tab/tab.js
+++ b/chrome/content/tab/tab.js
@@ -69,7 +69,7 @@ var TabmixTabbar = {
     if (prevTabscroll != tabscroll) {
       // update pointer to the button object that we are going to use
       let useTabmixButtons = tabscroll > this.SCROLL_BUTTONS_LEFT_RIGHT;
-      let overflow = tabBar.overflow;
+      let overflow = Tabmix.tabsUtils.overflow;
 
       // from Firefox 4.0+ on we add dynamicly scroll buttons on TabsToolbar.
       let tabmixScrollBox = document.getElementById("tabmixScrollBox");
@@ -99,7 +99,7 @@ var TabmixTabbar = {
         // the height in front.
         tabStrip.orient = "vertical";
         if (tabBar.updateVerticalTabStrip() == "scrollbar")
-          tabBar.overflow = true;
+          Tabmix.tabsUtils.overflow = true;
       }
       Tabmix.setItem(tabmixScrollBox, "collapsed", null);
 
@@ -248,7 +248,7 @@ var TabmixTabbar = {
     if (aRows == 1) {
       Tabmix.setItem(tabBar, "multibar", null);
       Tabmix.setItem("TabsToolbar", "multibar", null);
-      tabBar.overflow = false;
+      Tabmix.tabsUtils.overflow = false;
       return;
     }
 
@@ -528,7 +528,7 @@ var TabmixTabbar = {
     var tabBar = gBrowser.tabContainer;
     // call our tabstrip function only when we are in multi-row and
     // in overflow with pinned tabs
-    if (this.isMultiRow && tabBar.overflow && tabBar.firstChild.pinned)
+    if (this.isMultiRow && Tabmix.tabsUtils.overflow && tabBar.firstChild.pinned)
       tabBar.mTabstrip.setFirstTabInRow();
   },
 
@@ -713,7 +713,7 @@ Tabmix.tabsUtils = {
       return;
 
     if (!this.checkNewtabButtonVisibility) {
-      TabmixTabbar.showNewTabButtonOnSide(this.tabBar.overflow, "right-side");
+      TabmixTabbar.showNewTabButtonOnSide(this.overflow, "right-side");
       return;
     }
 
@@ -795,11 +795,32 @@ Tabmix.tabsUtils = {
   },
 
   set disAllowNewtabbutton(val) {
-    let newVal = this.tabBar.overflow || val;
+    let newVal = this.overflow || val;
     TabmixTabbar.showNewTabButtonOnSide(newVal, "temporary-right-side");
     return newVal;
   },
 
+  get overflow() {
+    return this.tabBar.hasAttribute("overflow");
+  },
+
+  set overflow(val) {
+    // don't do anything if other extensions set orient to vertical
+    // when we arn't use it.
+    if (!TabmixTabbar.isMultiRow && this.tabBar.mTabstrip.orient == "vertical")
+      return val;
+
+    if (val != this.overflow) {
+      if (val)
+        this.tabBar.setAttribute("overflow", "true");
+      else
+        this.tabBar.removeAttribute("overflow");
+      TabmixTabbar.showNewTabButtonOnSide(val, "right-side");
+      this.tabBar.mTabstrip.updateOverflow(val);
+    }
+    return val;
+  },
+
   get topTabY() {
     return this.tabstripInnerbox.getBoundingClientRect().top +
       Tabmix.getStyle(this.tabstripInnerbox, "paddingTop");
@@ -1227,11 +1248,11 @@ var gTMPprefObserver = {
           if (TabmixTabbar.isMultiRow) {
             let isVisible = tabBar.mTabstrip.isElementVisible(gBrowser.mCurrentTab);
             // we hide the button to see if tabs can fits to fewer rows without the scroll buttons
-            if (tabBar.overflow && row > TabmixTabbar.visibleRows)
-              tabBar.overflow = false;
+            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") {
-              tabBar.overflow = true;
+              Tabmix.tabsUtils.overflow = true;
               tabBar.mTabstrip._updateScrollButtonsDisabledState();
               if (isVisible)
                 gBrowser.ensureTabIsVisible(gBrowser.selectedTab, false);
@@ -1804,7 +1825,7 @@ var gTMPprefObserver = {
     // we use this value in disAllowNewtabbutton and overflow setters
     Tabmix._show_newtabbutton = attrValue;
     if (aShow) {
-      if (gBrowser.tabContainer.overflow)
+      if (Tabmix.tabsUtils.overflow)
         attrValue = "right-side";
       else if (Tabmix.tabsUtils.disAllowNewtabbutton)
         attrValue = "temporary-right-side";
diff --git a/chrome/content/tab/tabbrowser_4.xml b/chrome/content/tab/tabbrowser_4.xml
index aa8d3a5..83f25e0 100644
--- a/chrome/content/tab/tabbrowser_4.xml
+++ b/chrome/content/tab/tabbrowser_4.xml
@@ -370,7 +370,8 @@
           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 && Tabmix.tabsUtils.canScrollTabsLeft) {
+          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
@@ -394,9 +395,9 @@
           TabmixTabbar.setHeight(rows, aReset);
 
           if (this.mTabstrip.orient == "vertical")
-            this.overflow = multibar == "scrollbar";
+            Tabmix.tabsUtils.overflow = multibar == "scrollbar";
 
-          if (!this.overflow) {
+          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")) {
@@ -433,28 +434,6 @@
         ]]></body>
       </method>
 
-      <property name="overflow">
-        <getter><![CDATA[
-          return this.hasAttribute("overflow");
-        ]]></getter>
-        <setter><![CDATA[
-          // don't do anything if other extensions set orient to vertical
-          // when we arn't use it.
-          if (!TabmixTabbar.isMultiRow && this.mTabstrip.orient == "vertical")
-            return val;
-
-          if (val != this.overflow) {
-            if (val)
-              this.setAttribute("overflow", "true");
-            else
-              this.removeAttribute("overflow");
-            TabmixTabbar.showNewTabButtonOnSide(val, "right-side");
-            this.mTabstrip.updateOverflow(val);
-          }
-          return val;
-        ]]></setter>
-      </property>
-
       <method name="_notifyBackgroundTab">
         <parameter name="aTab"/>
         <body><![CDATA[
@@ -491,7 +470,7 @@
             if (!selected ||
                 !TabmixTabbar.isMultiRow && Math.max(tab.right - selected.left, selected.right - tab.left) <= scrollRect.width ||
                  TabmixTabbar.isMultiRow && Math.max(tab.bottom - selected.top, selected.bottom - tab.top) <= scrollRect.height) {
-              if (this.overflow)
+              if (Tabmix.tabsUtils.overflow)
                 this.mTabstrip.ensureElementIsVisible(aTab);
               return;
             }
diff --git a/chrome/content/tabmix.js b/chrome/content/tabmix.js
index d54af74..4bfe832 100644
--- a/chrome/content/tabmix.js
+++ b/chrome/content/tabmix.js
@@ -775,7 +775,7 @@ var TMP_eventListener = {
   lastTimeTabOpened: 0,
   onTabOpen_delayUpdateTabBar: function TMP_EL_onTabOpen_delayUpdateTabBar(aTab) {
     let newTime = Date.now();
-    if (gBrowser.tabContainer.overflow || newTime - this.lastTimeTabOpened > 200) {
+    if (Tabmix.tabsUtils.overflow || newTime - this.lastTimeTabOpened > 200) {
       this.onTabOpen_updateTabBar(aTab);
       this.lastTimeTabOpened = newTime;
     }
@@ -800,7 +800,7 @@ var TMP_eventListener = {
       return;
     }
     var tabBar = gBrowser.tabContainer;
-    if (!tabBar.overflow) {
+    if (!Tabmix.tabsUtils.overflow) {
       // we use it as a backup for overflow event and for the case that we have
       // pinned tabs in multi-row
       if (TabmixTabbar.isMultiRow && tabBar.mTabstrip.orient != "vertical")
@@ -880,7 +880,7 @@ var TMP_eventListener = {
     }
 
     // workaround when we remove last visible tab
-    if (tabBar.firstChild.pinned && TabmixTabbar.isMultiRow && tabBar.overflow &&
+    if (tabBar.firstChild.pinned && TabmixTabbar.isMultiRow && Tabmix.tabsUtils.overflow &&
         aTab._tPos >= Tabmix.visibleTabs.last._tPos)
       tabBar.mTabstrip.ensureElementIsVisible(gBrowser.selectedTab, 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