Don't ignore !important when attempting to merge CSS rules by content.
Resolves issue 4304.

Patch by: bobv
Review by: rjrjr

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7316 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/resources/css/MergeRulesByContentVisitor.java b/user/src/com/google/gwt/resources/css/MergeRulesByContentVisitor.java
index ea3e276..17e949d 100644
--- a/user/src/com/google/gwt/resources/css/MergeRulesByContentVisitor.java
+++ b/user/src/com/google/gwt/resources/css/MergeRulesByContentVisitor.java
@@ -55,6 +55,9 @@
     StringBuilder b = new StringBuilder();
     for (CssProperty p : x.getProperties()) {
       b.append(p.getName()).append(":").append(p.getValues().getExpression());
+      if (p.isImportant()) {
+        b.append("!important");
+      }
     }
 
     String content = b.toString();
diff --git a/user/test/com/google/gwt/resources/css/propertyMerging_expected.css b/user/test/com/google/gwt/resources/css/propertyMerging_expected.css
index 823be8a..284df73 100644
--- a/user/test/com/google/gwt/resources/css/propertyMerging_expected.css
+++ b/user/test/com/google/gwt/resources/css/propertyMerging_expected.css
@@ -36,6 +36,14 @@
   unrelated: six;
 }
 
+.noMergeImportant1 {
+  property: is;
+}
+
+.noMergeImportant2 {
+  property: is !important;
+}
+
 .noMergeExact1 {
   group: three;
   border: blue;
diff --git a/user/test/com/google/gwt/resources/css/propertyMerging_test.css b/user/test/com/google/gwt/resources/css/propertyMerging_test.css
index c4e5e11..f9cb49b 100644
--- a/user/test/com/google/gwt/resources/css/propertyMerging_test.css
+++ b/user/test/com/google/gwt/resources/css/propertyMerging_test.css
@@ -45,6 +45,14 @@
   group: five;
 }
 
+.noMergeImportant1 {
+  property: is;
+}
+
+.noMergeImportant2 {
+  property: is !important;
+}
+
 .noMergeExact1 {
   group: three;
   border: blue;