From 6823abb8024060eee6a4f8eaace288ed9dd58e65 Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Wed, 27 Jun 2012 17:21:17 -0700
Subject: Styles Controller - Fix specificity comparison in
 hasGreaterSpecificity()

---
 js/controllers/styles-controller.js | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

(limited to 'js/controllers')

diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js
index 0f847653..47c63c09 100755
--- a/js/controllers/styles-controller.js
+++ b/js/controllers/styles-controller.js
@@ -213,6 +213,9 @@ var stylesController = exports.StylesController = Montage.create(Component, {
             
             stylesheet.insertRule(ruleText, index);
 
+            ///// Invalidate cache because rule dominance is affected
+            this._clearCache();
+
             this.styleSheetModified(stylesheet);
             
             rule = stylesheet.rules[index];
@@ -775,7 +778,7 @@ var stylesController = exports.StylesController = Montage.create(Component, {
             var a = this._getMostSpecificSelectorForElement(element, rule1[this.CONST.SPECIFICITY_KEY]),
                 b = this._getMostSpecificSelectorForElement(element, rule2[this.CONST.SPECIFICITY_KEY]),
                 win = element.ownerDocument.defaultView,
-                order;
+                order, sheetAIndex, sheetBIndex, ruleAIndex, ruleBIndex;
 
               order = this.compareSpecificity(a.specificity, b.specificity);
 
@@ -786,9 +789,9 @@ var stylesController = exports.StylesController = Montage.create(Component, {
                  /// If tied again (same sheet), determine which is further down in the sheet
                 if(sheetAIndex === sheetBIndex) {
                      ruleAIndex = this.getRuleIndex(rule1); ruleBIndex = this.getRuleIndex(rule2);
-                   return ruleAIndex < ruleBIndex ? 1 : (ruleAIndex > ruleBIndex) ? -1 : 0;
+                   return ruleAIndex < ruleBIndex ? false : (ruleAIndex > ruleBIndex) ? true : false;
                  } else {
-                     return sheetAIndex < sheetBIndex ? 1 : (sheetAIndex > sheetBIndex) ? -1 : 0;
+                     return sheetAIndex < sheetBIndex ? false : (sheetAIndex > sheetBIndex) ? true : false;
                 }
              }
 
@@ -1552,6 +1555,7 @@ var stylesController = exports.StylesController = Montage.create(Component, {
         value: function(el, property, rule) {
             if(!el.elementModel) { return false; } /// return null if there is no element model
 
+            console.log("Setting cache for property: ", property);
             this._cacheHistory.push({
                 rule: rule,
                 element: el,
@@ -1614,6 +1618,7 @@ var stylesController = exports.StylesController = Montage.create(Component, {
             if(!element) {
                 this._cacheHistory = null;
                 this._cacheHistory = [];
+                console.log("Removing cache: ", this._cacheHistory);
             }
 
         }
-- 
cgit v1.2.3


From 72a236ce7af6711f9d30762c2409d0ebd5ecf7aa Mon Sep 17 00:00:00 2001
From: Eric Guzman
Date: Fri, 29 Jun 2012 09:14:30 -0700
Subject: Styles Controller - removing console logs

---
 js/controllers/styles-controller.js | 2 --
 1 file changed, 2 deletions(-)

(limited to 'js/controllers')

diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js
index 47c63c09..e25ed20c 100755
--- a/js/controllers/styles-controller.js
+++ b/js/controllers/styles-controller.js
@@ -1555,7 +1555,6 @@ var stylesController = exports.StylesController = Montage.create(Component, {
         value: function(el, property, rule) {
             if(!el.elementModel) { return false; } /// return null if there is no element model
 
-            console.log("Setting cache for property: ", property);
             this._cacheHistory.push({
                 rule: rule,
                 element: el,
@@ -1618,7 +1617,6 @@ var stylesController = exports.StylesController = Montage.create(Component, {
             if(!element) {
                 this._cacheHistory = null;
                 this._cacheHistory = [];
-                console.log("Removing cache: ", this._cacheHistory);
             }
 
         }
-- 
cgit v1.2.3