Commit 5b01c57c authored by Wes Johnston's avatar Wes Johnston
Browse files

Bug 736311 - Set selected tab inactive when Fennec goes into the background. r=mbrubeck

parent a38c07de
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -234,6 +234,7 @@ var BrowserApp = {
    PermissionsHelper.init();
    CharacterEncoding.init();
    SearchEngines.init();
    ActivityObserver.init();

    // Init LoginManager
    Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
@@ -1593,6 +1594,10 @@ Tab.prototype = {
    }
  },

  getActive: function getActive() {
      return this.browser.docShellIsActive;
  },

  setDisplayPort: function(aViewportX, aViewportY, aDisplayPortRect) {
    let zoom = this._zoom;
    if (zoom <= 0)
@@ -4420,3 +4425,26 @@ var SearchEngines = {
    });
  }
};

var ActivityObserver = {
  init: function ao_init() {
    Services.obs.addObserver(this, "application-background", false);
    Services.obs.addObserver(this, "application-foreground", false);
  },

  observe: function ao_observe(aSubject, aTopic, aData) {
    let isForeground = false
    switch (aTopic) {
      case "application-background" :
        isForeground = false;
        break;
      case "application-foreground" :
        isForeground = true;
        break;
    }

    if (BrowserApp.selectedTab.getActive() != isForeground) {
      BrowserApp.selectedTab.setActive(isForeground);
    }
  }
};