[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