[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