Fix a CssResource bug where selector and rule merging did not work inside of @if or @media blocks.

Patch by: bobv
Review by: rjrjr (desk)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5317 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java
index 0a5c70b..063c04e 100644
--- a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java
+++ b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java
@@ -309,7 +309,7 @@
 
     private void visitInNewContext(List<CssNode> nodes) {
       MergeIdenticalSelectorsVisitor v = new MergeIdenticalSelectorsVisitor();
-      v.accept(nodes);
+      v.acceptWithInsertRemove(nodes);
       rulesInOrder.addAll(v.rulesInOrder);
     }
   }
@@ -371,7 +371,7 @@
 
     private void visitInNewContext(List<CssNode> nodes) {
       MergeRulesByContentVisitor v = new MergeRulesByContentVisitor();
-      v.accept(nodes);
+      v.acceptWithInsertRemove(nodes);
       rulesInOrder.addAll(v.rulesInOrder);
     }
   }
diff --git a/user/test/com/google/gwt/resources/rg/propertyMerging_expected.css b/user/test/com/google/gwt/resources/rg/propertyMerging_expected.css
index e94e068..823be8a 100644
--- a/user/test/com/google/gwt/resources/rg/propertyMerging_expected.css
+++ b/user/test/com/google/gwt/resources/rg/propertyMerging_expected.css
@@ -103,3 +103,12 @@
 .media3 {
   group: media;
 }
+
+/* Make sure merging inside sub-contexts works */
+@if (true) {
+  .a , .b {group: one;}
+}
+
+@media print {
+  .a , .b {group: one;}
+}
diff --git a/user/test/com/google/gwt/resources/rg/propertyMerging_test.css b/user/test/com/google/gwt/resources/rg/propertyMerging_test.css
index 0589ccf..c4e5e11 100644
--- a/user/test/com/google/gwt/resources/rg/propertyMerging_test.css
+++ b/user/test/com/google/gwt/resources/rg/propertyMerging_test.css
@@ -116,7 +116,17 @@
   group2: mediaOk;
 }
 
-
 .media3 {
   group: media;
 }
+
+/* Make sure merging inside sub-contexts works */
+@if (true) {
+  .a {group: one;}
+  .b {group: one;}
+}
+
+@media print {
+  .a {group: one;}
+  .b {group: one;}
+}
diff --git a/user/test/com/google/gwt/resources/rg/selectorMerging_expected.css b/user/test/com/google/gwt/resources/rg/selectorMerging_expected.css
index c48b61f..297bf58 100644
--- a/user/test/com/google/gwt/resources/rg/selectorMerging_expected.css
+++ b/user/test/com/google/gwt/resources/rg/selectorMerging_expected.css
@@ -61,7 +61,7 @@
   media5 : true;
 }
 
-@if (true) {
+@media print {
   media {
     media3 : true;
   }
@@ -70,3 +70,14 @@
 media {
   media3-block : false;
 }
+
+/* Make sure merging inside sub-contexts works */
+@if (true) {
+  .a {propOne: one;
+      propTwo: one;}
+}
+
+@media print {
+  .a {propOne: one;
+      propTwo: one;}
+}
diff --git a/user/test/com/google/gwt/resources/rg/selectorMerging_test.css b/user/test/com/google/gwt/resources/rg/selectorMerging_test.css
index fd5225c..33d6f53 100644
--- a/user/test/com/google/gwt/resources/rg/selectorMerging_test.css
+++ b/user/test/com/google/gwt/resources/rg/selectorMerging_test.css
@@ -63,7 +63,7 @@
   media1 : true;
 }
 
-@if (true) {
+@media print {
   media {
     media3 : true;
   }
@@ -76,3 +76,14 @@
 media {
   media3-block : false;
 }
+
+/* Make sure merging inside sub-contexts works */
+@if (true) {
+  .a {propOne: one;}
+  .a {propTwo: one;}
+}
+
+@media print {
+  .a {propOne: one;}
+  .a {propTwo: one;}
+}
\ No newline at end of file