From eed1fff75eca552f0f7017f13ebaf31148221061 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Thu, 29 Jan 2015 23:07:31 -0500
Subject: [PATCH] more menu state stuff

---
 js/menus/LatticeMenuView.js |  5 ++++-
 js/menus/navbar.js          |  7 +------
 js/models/AppState.js       | 10 ++++++++++
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js
index 4b0b7f3f..853daa0c 100644
--- a/js/menus/LatticeMenuView.js
+++ b/js/menus/LatticeMenuView.js
@@ -18,7 +18,10 @@ LatticeMenuView = Backbone.View.extend({
         this.appState = options.appState;
 
         _.bindAll(this, "render");
-        this.listenTo(this.model, "change", this.render);
+        this.listenTo(this.model, "change", function(){
+            if(!model.hasChanged('cellMode')) return;//ignore cell mode changes
+            this.render();
+        });
     },
 
     _clearCells: function(e){
diff --git a/js/menus/navbar.js b/js/menus/navbar.js
index d8d1fe6e..d312437c 100644
--- a/js/menus/navbar.js
+++ b/js/menus/navbar.js
@@ -50,12 +50,7 @@ NavBar = Backbone.View.extend({
             $(e.target).blur();
             return;
         }
-        if (navSelection) {
-            if (navSelection=="navDesign") this.model.set("currentTab", this.model.get("lastDesignTab"), {silent: true});
-            else if (navSelection=="navSim") this.model.set("currentTab", this.model.get("lastSimulationTab"), {silent: true});
-            else if (navSelection=="navAssemble") this.model.set("currentTab", this.model.get("lastAssembleTab"), {silent: true});
-            this.model.set("currentNav", navSelection);
-        }
+        if (navSelection) this.model.set("currentNav", navSelection);
     },
 
     _updateNavSelectionUI: function(){
diff --git a/js/models/AppState.js b/js/models/AppState.js
index 9a37734d..9e573047 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -23,6 +23,7 @@ AppState = Backbone.Model.extend({
 
         this.listenTo(this, "change:currentTab", this._storeTab);
         this.listenTo(this, "change:currentTab", this._updateLatticeMode);
+        this.listenTo(this, "change:currentNav", this._updateCurrentTabForNav);
 
         this.lattice = options.lattice;
     },
@@ -41,6 +42,15 @@ AppState = Backbone.Model.extend({
         else if (currentTab == "import") this.lattice.set("cellMode", "cell");
         else if (currentTab == "sketch") this.lattice.set("cellMode", "cell");
         else if (currentTab == "part") this.lattice.set("cellMode", "parts");
+    },
+
+    //update to last tab open in that section
+    _updateCurrentTabForNav: function(){
+        var navSelection = this.get("currentNav");
+        if (navSelection=="navDesign") this.set("currentTab", this.get("lastDesignTab"), {silent:true});
+        else if (navSelection=="navSim") this.set("currentTab", this.get("lastSimulationTab"), {silent:true});
+        else if (navSelection=="navAssemble") this.set("currentTab", this.get("lastAssembleTab"), {silent:true});
+        this._updateLatticeMode();//a little bit hacky, this updates the lattice, but holds off on updating the menus til the animation has happened
     }
 
 });
\ No newline at end of file
-- 
GitLab