[Pkg-mozext-commits] [tabmixplus] 130/147: Follow up bug 1354789 - Cache layout information needed in _positionPinnedTabs
David Prévot
taffit at moszumanska.debian.org
Sat Aug 5 15:27:45 UTC 2017
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository tabmixplus.
commit b3f654b236ee38047902d3e720c9a9596f2208df
Author: onemen <tabmix.onemen at gmail.com>
Date: Thu Apr 13 20:35:36 2017 +0300
Follow up bug 1354789 - Cache layout information needed in _positionPinnedTabs
---
chrome/content/minit/tablib.js | 15 +++++++++++----
chrome/content/tab/tab.js | 11 ++++++++---
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/chrome/content/minit/tablib.js b/chrome/content/minit/tablib.js
index 1396475..c0d0ec4 100644
--- a/chrome/content/minit/tablib.js
+++ b/chrome/content/minit/tablib.js
@@ -403,7 +403,7 @@ Tabmix.tablib = {
this.mTabstrip.resetFirstTabInRow();\
$&'
)._replace(
- /this.mTabstrip._scrollButtonDown.(scrollWidth|getBoundingClientRect\(\).width)/,
+ /(tabstrip|this.mTabstrip)\._scrollButtonDown\.getBoundingClientRect\(\)\.width/,
'TabmixTabbar.scrollButtonsMode != TabmixTabbar.SCROLL_BUTTONS_LEFT_RIGHT ? 0 : $&'
)._replace(
'if (doPosition)',
@@ -411,13 +411,20 @@ Tabmix.tablib = {
' Tabmix.prefs.getBoolPref("pinnedTabScroll")) {' + $LF +
' doPosition = false;' + $LF +
'}' + $LF +
- ' if (doPosition && TabmixTabbar.isMultiRow) {' +
- ' this.setAttribute("positionpinnedtabs", "true");' +
+ 'if (doPosition && TabmixTabbar.isMultiRow) {' + $LF +
+ ' this.setAttribute("positionpinnedtabs", "true");' + $LF +
+ ' let layoutData = this._pinnedTabsLayoutCache;' + $LF +
+ ' if (!layoutData) {' + $LF +
+ ' layoutData = {pinnedTabWidth: this.childNodes[0].getBoundingClientRect().width};' + $LF +
+ ' if (Tabmix.isVersion(550)) {' + $LF +
+ ' this._pinnedTabsLayoutCache = layoutData;' + $LF +
+ ' }' + $LF +
+ ' }' + $LF +
' let width = TabmixSvc.australis ? 0 : this.mTabstrip.scrollboxPaddingStart;' +
' for (let i = 0; i < numPinned; i++) {' +
' let tab = this.childNodes[i];' +
' tab.style.MozMarginStart = width + "px";' +
- ' width += tab.getBoundingClientRect().width;' +
+ ' width += layoutData.pinnedTabWidth;' +
' }' +
' if (width != this.mTabstrip.firstTabInRowMargin) {' +
' this.mTabstrip.firstTabInRowMargin = width;' +
diff --git a/chrome/content/tab/tab.js b/chrome/content/tab/tab.js
index d55d6d7..06fe42d 100644
--- a/chrome/content/tab/tab.js
+++ b/chrome/content/tab/tab.js
@@ -50,7 +50,7 @@ var TabmixTabbar = {
return;
var tabBar = gBrowser.tabContainer;
- var tabStrip = tabBar.mTabstrip;
+ var tabstrip = tabBar.mTabstrip;
var tabscroll = Tabmix.prefs.getIntPref("tabBarMode");
if (document.documentElement.getAttribute("chromehidden").indexOf("toolbar") != -1)
@@ -91,18 +91,23 @@ var TabmixTabbar = {
Tabmix.setItem(tabmixScrollBox, "defaultScrollButtons", isDefault);
if (prevTabscroll == this.SCROLL_BUTTONS_MULTIROW) {
- tabBar.mTabstrip.resetFirstTabInRow();
+ tabstrip.resetFirstTabInRow();
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";
+ tabstrip.orient = "vertical";
if (Tabmix.tabsUtils.updateVerticalTabStrip() == "scrollbar")
Tabmix.tabsUtils.overflow = true;
}
Tabmix.setItem(tabmixScrollBox, "collapsed", null);
+ if (gBrowser._numPinnedTabs && tabBar._pinnedTabsLayoutCache) {
+ tabBar._pinnedTabsLayoutCache.paddingStart = tabstrip.scrollboxPaddingStart;
+ tabBar._pinnedTabsLayoutCache.scrollButtonWidth = tabscroll != this.SCROLL_BUTTONS_LEFT_RIGHT ?
+ 0 : tabstrip._scrollButtonDown.getBoundingClientRect().width;
+ }
tabBar._positionPinnedTabs();
if (isMultiRow && TMP_tabDNDObserver.paddingLeft)
TMP_tabDNDObserver.paddingLeft = Tabmix.getStyle(tabBar, "paddingLeft");
--
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