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