[Pkg-mozext-commits] [tabmixplus] 18/28: Use gBrowser._switcher.updateDisplay to update display with our attributes instead of 'TabSwitchDone' event
David Prévot
taffit at moszumanska.debian.org
Sun Jul 5 15:02:34 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 87aeecd06b4eb966313b6cb9c97382ad7c154aab
Author: onemen <tabmix.onemen at gmail.com>
Date: Mon Jun 29 14:12:28 2015 +0300
Use gBrowser._switcher.updateDisplay to update display with our attributes instead of 'TabSwitchDone' event
---
chrome/content/minit/tablib.js | 24 ++++++++++++++++++++++++
chrome/content/tab/tab.js | 3 ++-
chrome/content/tabmix.js | 17 +++--------------
3 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/chrome/content/minit/tablib.js b/chrome/content/minit/tablib.js
index 02a8790..f600f28 100644
--- a/chrome/content/minit/tablib.js
+++ b/chrome/content/minit/tablib.js
@@ -329,6 +329,30 @@ var tablib = {
'Tabmix.setNumberOfTabsClosedLast();'
).toCode();
}
+
+ if (Tabmix.isVersion(390) && gMultiProcessBrowser) {
+ /*
+ TabSwitchDone event fire late when the tab is busy, we call our
+ functions from updateDisplay only after _visuallySelected was changed
+ */
+ Tabmix.updateSwitcher = function(switcher) {
+ switcher.original_updateDisplay = switcher.updateDisplay;
+ switcher.updateDisplay = function() {
+ let visibleTab = this.visibleTab;
+ this.original_updateDisplay.apply(this, arguments);
+ if (visibleTab !== this.visibleTab) {
+ TMP_eventListener.updateDisplay(this.visibleTab);
+ TabmixTabbar.updateBeforeAndAfter();
+ }
+ };
+ };
+
+ Tabmix.changeCode(gBrowser, "gBrowser._getSwitcher")._replace(
+ 'this._switcher = switcher;',
+ 'Tabmix.updateSwitcher(switcher);\n' +
+ '$&'
+ ).toCode();
+ }
},
change_tabContainer: function change_tabContainer() {
diff --git a/chrome/content/tab/tab.js b/chrome/content/tab/tab.js
index d31bebf..9d633da 100644
--- a/chrome/content/tab/tab.js
+++ b/chrome/content/tab/tab.js
@@ -364,7 +364,6 @@ var TabmixTabbar = {
updateBeforeAndAfter: function TMP_updateBeforeAndAfter(onlyHoverAtt) {
let tabBar = gBrowser.tabContainer;
let multibar = tabBar.hasAttribute("multibar");
- let selected = tabBar.selectedItem;
let tabRow, topY;
let numPinnedTabs = gBrowser._numPinnedTabs;
@@ -420,6 +419,8 @@ var TabmixTabbar = {
if (onlyHoverAtt)
return;
+ let selected = Tabmix.isVersion(390) && gBrowser._switcher ?
+ gBrowser._switcher.visibleTab : tabBar.selectedItem;
let prev = null, next = null;
if (!selected.closing) {
let visibleTabs = gBrowser.visibleTabs;
diff --git a/chrome/content/tabmix.js b/chrome/content/tabmix.js
index 49764be..1881019 100644
--- a/chrome/content/tabmix.js
+++ b/chrome/content/tabmix.js
@@ -286,9 +286,6 @@ var TMP_eventListener = {
case "TabSelect":
this.onTabSelect(aEvent);
break;
- case "TabSwitchDone":
- this.onTabSwitchDone(gBrowser.selectedTab);
- break;
case "TabMove":
this.onTabMove(aEvent);
break;
@@ -463,10 +460,6 @@ var TMP_eventListener = {
Tabmix.Utils.initMessageManager(window);
}
- if (Tabmix.isVersion(390)) {
- gBrowser.addEventListener("TabSwitchDone", this, false);
- }
-
var tabBar = gBrowser.tabContainer;
tabBar.addEventListener("DOMMouseScroll", this, true);
@@ -943,15 +936,15 @@ var TMP_eventListener = {
// update this functions after new tab select
tab.setAttribute("tabmix_selectedID", Tabmix._nextSelectedID++);
- if (!Tabmix.isVersion(390)) {
- this.onTabSwitchDone(tab);
+ if (!Tabmix.isVersion(390) || !gMultiProcessBrowser) {
+ this.updateDisplay(tab);
}
TMP_LastTab.OnSelect();
TabmixSessionManager.tabSelected(true);
},
- onTabSwitchDone: function(tab) {
+ updateDisplay: function(tab) {
if (!tab.hasAttribute("visited"))
tab.setAttribute("visited", true);
@@ -1092,10 +1085,6 @@ var TMP_eventListener = {
if (alltabsPopup && alltabsPopup._tabmix_inited)
alltabsPopup.removeEventListener("popupshown", alltabsPopup.__ensureElementIsVisible, false);
- if (Tabmix.isVersion(390)) {
- gBrowser.removeEventListener("TabSwitchDone", this, false);
- }
-
gBrowser.tabContainer.removeEventListener("DOMMouseScroll", this, true);
if (TMP_TabView.installed)
--
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