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