[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:39:24 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 88cda345b3d45499629e14abe84ff3c48533371e
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Apr 30 02:33:55 2003 +0000

    	This patch fixes the following bugs:
    
    	(1) 3186174 - padding-left improperly applied to list items.
    	The fix is in render_list.cpp and involves adding in the
    	list item's border and padding so that outside markers end up
    	outside the border box instead of just inside the padding box.
    
    	(2) 3239571 - a stray !important after a ; causes the CSS parser
    	to choke.  This patch adds a rule to parser.y to deal with
    	!importants found in between property values and to just ignore
    	them.
    
    	(3) 3170647 - positioned boxes with auto widths ended up adding
    	in their border/padding twice!  Make sure that when
    	calcAbsoluteHorizontal in render_box.cpp examines m_maxWidth that
    	it subtracts out the border and padding and looks at content width.
    
    	(4) 3186165 - Negative padding values were being incorrectly
    	honored by Safari.  A patch to css_styleselector.cpp checks to
    	see if the value specified by the rule is negative, and if so
    	the rule is not applied.
    
    	(5) 3132172 - The clip property could not be accessed via script
    	because the cssText routine for CSS_RECT primitive values had
    	not been implemented.  In css_valueimpl.cpp this code has now been
    	filled in.
    
            Reviewed by mjs
    
            * khtml/css/css_valueimpl.cpp:
            (CSSPrimitiveValueImpl::cssText):
            * khtml/css/cssstyleselector.cpp:
            * khtml/css/parser.cpp:
            * khtml/css/parser.y:
            * khtml/rendering/render_box.cpp:
            (RenderBox::calcAbsoluteHorizontal):
            * khtml/rendering/render_list.cpp:
            (RenderListMarker::paintObject):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4216 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 7ff01e7..5d7c1be 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,46 @@
 2003-04-29  David Hyatt  <hyatt at apple.com>
 
+	This patch fixes the following bugs:
+
+	(1) 3186174 - padding-left improperly applied to list items.
+	The fix is in render_list.cpp and involves adding in the
+	list item's border and padding so that outside markers end up
+	outside the border box instead of just inside the padding box.
+
+	(2) 3239571 - a stray !important after a ; causes the CSS parser
+	to choke.  This patch adds a rule to parser.y to deal with
+	!importants found in between property values and to just ignore
+	them.
+
+	(3) 3170647 - positioned boxes with auto widths ended up adding
+	in their border/padding twice!  Make sure that when 
+	calcAbsoluteHorizontal in render_box.cpp examines m_maxWidth that
+	it subtracts out the border and padding and looks at content width.
+
+	(4) 3186165 - Negative padding values were being incorrectly
+	honored by Safari.  A patch to css_styleselector.cpp checks to
+	see if the value specified by the rule is negative, and if so
+	the rule is not applied.
+
+	(5) 3132172 - The clip property could not be accessed via script
+	because the cssText routine for CSS_RECT primitive values had
+	not been implemented.  In css_valueimpl.cpp this code has now been
+	filled in.
+	
+        Reviewed by mjs
+
+        * khtml/css/css_valueimpl.cpp:
+        (CSSPrimitiveValueImpl::cssText):
+        * khtml/css/cssstyleselector.cpp:
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::calcAbsoluteHorizontal):
+        * khtml/rendering/render_list.cpp:
+        (RenderListMarker::paintObject):
+
+2003-04-29  David Hyatt  <hyatt at apple.com>
+
 	Fix for 3226138, crash on canada.gc.ca.  Make sure a failed
 	@media parse doesn't crash by adding a null check.
 	
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 7ff01e7..5d7c1be 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,46 @@
 2003-04-29  David Hyatt  <hyatt at apple.com>
 
+	This patch fixes the following bugs:
+
+	(1) 3186174 - padding-left improperly applied to list items.
+	The fix is in render_list.cpp and involves adding in the
+	list item's border and padding so that outside markers end up
+	outside the border box instead of just inside the padding box.
+
+	(2) 3239571 - a stray !important after a ; causes the CSS parser
+	to choke.  This patch adds a rule to parser.y to deal with
+	!importants found in between property values and to just ignore
+	them.
+
+	(3) 3170647 - positioned boxes with auto widths ended up adding
+	in their border/padding twice!  Make sure that when 
+	calcAbsoluteHorizontal in render_box.cpp examines m_maxWidth that
+	it subtracts out the border and padding and looks at content width.
+
+	(4) 3186165 - Negative padding values were being incorrectly
+	honored by Safari.  A patch to css_styleselector.cpp checks to
+	see if the value specified by the rule is negative, and if so
+	the rule is not applied.
+
+	(5) 3132172 - The clip property could not be accessed via script
+	because the cssText routine for CSS_RECT primitive values had
+	not been implemented.  In css_valueimpl.cpp this code has now been
+	filled in.
+	
+        Reviewed by mjs
+
+        * khtml/css/css_valueimpl.cpp:
+        (CSSPrimitiveValueImpl::cssText):
+        * khtml/css/cssstyleselector.cpp:
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::calcAbsoluteHorizontal):
+        * khtml/rendering/render_list.cpp:
+        (RenderListMarker::paintObject):
+
+2003-04-29  David Hyatt  <hyatt at apple.com>
+
 	Fix for 3226138, crash on canada.gc.ca.  Make sure a failed
 	@media parse doesn't crash by adding a null check.
 	
diff --git a/WebCore/khtml/css/css_valueimpl.cpp b/WebCore/khtml/css/css_valueimpl.cpp
index fe2ae51..b6c984d 100644
--- a/WebCore/khtml/css/css_valueimpl.cpp
+++ b/WebCore/khtml/css/css_valueimpl.cpp
@@ -704,9 +704,15 @@ DOM::DOMString CSSPrimitiveValueImpl::cssText() const
 	case CSSPrimitiveValue::CSS_COUNTER:
 	    // ###
 	    break;
-	case CSSPrimitiveValue::CSS_RECT:
-	    // ###
+        case CSSPrimitiveValue::CSS_RECT: {
+	    RectImpl* rectVal = getRectValue();
+            text = "rect(";
+            text += rectVal->top()->cssText() + " ";
+            text += rectVal->right()->cssText() + " ";
+            text += rectVal->bottom()->cssText() + " ";
+            text += rectVal->left()->cssText() + ")";
 	    break;
+        }
 	case CSSPrimitiveValue::CSS_RGBCOLOR:
 	    text = QColor(m_value.rgbcolor).name();
 	    break;
diff --git a/WebCore/khtml/css/cssstyleselector.cpp b/WebCore/khtml/css/cssstyleselector.cpp
index 60cf1be..d8ebf8c 100644
--- a/WebCore/khtml/css/cssstyleselector.cpp
+++ b/WebCore/khtml/css/cssstyleselector.cpp
@@ -2464,7 +2464,12 @@ void CSSStyleSelector::applyRule( int id, DOM::CSSValueImpl *value )
                 l = Length(int(primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_HTML_RELATIVE)), Relative);
             else
                 return;
-            apply = true;
+            if (id == CSS_PROP_PADDING_LEFT || id == CSS_PROP_PADDING_RIGHT ||
+                id == CSS_PROP_PADDING_TOP || id == CSS_PROP_PADDING_BOTTOM)
+                // Padding can't be negative
+                apply = !((l.isFixed() || l.isPercent()) && l.width(100) < 0);
+            else
+                apply = true;
         }
         if(!apply) return;
         switch(id)
diff --git a/WebCore/khtml/css/parser.cpp b/WebCore/khtml/css/parser.cpp
index 5249b4b..bb5b28f 100644
--- a/WebCore/khtml/css/parser.cpp
+++ b/WebCore/khtml/css/parser.cpp
@@ -181,7 +181,7 @@ static int cssyylex( YYSTYPE *yylval ) {
 
 
 
-#define	YYFINAL		263
+#define	YYFINAL		264
 #define	YYFLAG		-32768
 #define	YYNTBASE	60
 
@@ -231,12 +231,12 @@ static const short yyprhs[] = {     0,
    192,   194,   196,   198,   201,   204,   206,   208,   210,   212,
    215,   218,   223,   232,   234,   236,   238,   240,   242,   244,
    246,   248,   251,   255,   262,   264,   267,   269,   273,   275,
-   279,   283,   289,   294,   299,   306,   312,   315,   318,   321,
-   322,   324,   328,   331,   334,   337,   338,   340,   343,   346,
-   349,   352,   355,   357,   359,   362,   365,   368,   371,   374,
-   377,   380,   383,   386,   389,   392,   395,   398,   401,   404,
-   407,   410,   413,   416,   422,   426,   429,   433,   437,   440,
-   446,   450,   452
+   279,   283,   289,   294,   299,   306,   312,   315,   317,   320,
+   323,   324,   326,   330,   333,   336,   339,   340,   342,   345,
+   348,   351,   354,   357,   359,   361,   364,   367,   370,   373,
+   376,   379,   382,   385,   388,   391,   394,   397,   400,   403,
+   406,   409,   412,   415,   418,   424,   428,   431,   435,   439,
+   442,   448,   452,   454
 };
 
 static const short yyrhs[] = {    66,
@@ -271,21 +271,21 @@ static const short yyrhs[] = {    66,
     64,     0,     1,   108,     1,    49,    64,     0,    95,    96,
     49,    64,     0,    95,     1,    49,    64,     0,    95,     1,
    108,     1,    49,    64,     0,    97,    13,    64,    99,    98,
-     0,    97,     1,     0,    11,    64,     0,    24,    64,     0,
-     0,   101,     0,    99,   100,   101,     0,    99,     1,     0,
-    58,    64,     0,    50,    64,     0,     0,   102,     0,    80,
-   102,     0,    10,    64,     0,    11,    64,     0,    44,    64,
-     0,    46,    64,     0,   104,     0,   103,     0,    43,    64,
-     0,    42,    64,     0,    28,    64,     0,    29,    64,     0,
-    30,    64,     0,    31,    64,     0,    32,    64,     0,    33,
-    64,     0,    34,    64,     0,    35,    64,     0,    36,    64,
-     0,    37,    64,     0,    38,    64,     0,    39,    64,     0,
-    40,    64,     0,    26,    64,     0,    25,    64,     0,    27,
-    64,     0,    41,    64,     0,    45,    64,    99,    57,    64,
-     0,    45,    64,     1,     0,    12,    64,     0,    59,     1,
-   107,     0,    59,     1,    49,     0,     1,   107,     0,    47,
-     1,   108,     1,    48,     0,    47,     1,    48,     0,   107,
-     0,   108,     1,   107,     0
+     0,    97,     1,     0,    98,     0,    11,    64,     0,    24,
+    64,     0,     0,   101,     0,    99,   100,   101,     0,    99,
+     1,     0,    58,    64,     0,    50,    64,     0,     0,   102,
+     0,    80,   102,     0,    10,    64,     0,    11,    64,     0,
+    44,    64,     0,    46,    64,     0,   104,     0,   103,     0,
+    43,    64,     0,    42,    64,     0,    28,    64,     0,    29,
+    64,     0,    30,    64,     0,    31,    64,     0,    32,    64,
+     0,    33,    64,     0,    34,    64,     0,    35,    64,     0,
+    36,    64,     0,    37,    64,     0,    38,    64,     0,    39,
+    64,     0,    40,    64,     0,    26,    64,     0,    25,    64,
+     0,    27,    64,     0,    41,    64,     0,    45,    64,    99,
+    57,    64,     0,    45,    64,     1,     0,    12,    64,     0,
+    59,     1,   107,     0,    59,     1,    49,     0,     1,   107,
+     0,    47,     1,   108,     1,    48,     0,    47,     1,    48,
+     0,   107,     0,   108,     1,   107,     0
 };
 
 #endif
@@ -301,12 +301,12 @@ static const short yyrline[] = { 0,
    560,   581,   586,   591,   601,   607,   614,   615,   616,   619,
    628,   652,   658,   666,   670,   673,   676,   679,   682,   687,
    689,   692,   698,   704,   712,   716,   721,   724,   730,   738,
-   742,   748,   754,   759,   765,   773,   796,   802,   809,   811,
-   814,   819,   832,   838,   842,   845,   850,   852,   853,   854,
-   860,   861,   862,   864,   869,   871,   872,   873,   874,   875,
-   876,   877,   878,   879,   880,   881,   882,   883,   884,   885,
-   886,   887,   888,   892,   900,   912,   919,   926,   934,   960,
-   962,   965,   967
+   742,   748,   754,   759,   765,   773,   796,   800,   807,   814,
+   816,   819,   824,   837,   843,   847,   850,   855,   857,   858,
+   859,   865,   866,   867,   869,   874,   876,   877,   878,   879,
+   880,   881,   882,   883,   884,   885,   886,   887,   888,   889,
+   890,   891,   892,   893,   897,   905,   917,   924,   931,   939,
+   965,   967,   970,   972
 };
 #endif
 
@@ -341,12 +341,12 @@ static const short yyr1[] = {     0,
     85,    85,    86,    86,    86,    87,    87,    87,    87,    88,
     89,    90,    90,    91,    91,    91,    91,    91,    91,    92,
     92,    93,    93,    93,    94,    94,    94,    94,    94,    95,
-    95,    95,    95,    95,    95,    96,    96,    97,    98,    98,
-    99,    99,    99,   100,   100,   100,   101,   101,   101,   101,
-   101,   101,   101,   101,   102,   102,   102,   102,   102,   102,
+    95,    95,    95,    95,    95,    96,    96,    96,    97,    98,
+    98,    99,    99,    99,   100,   100,   100,   101,   101,   101,
+   101,   101,   101,   101,   101,   102,   102,   102,   102,   102,
    102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
-   102,   102,   102,   103,   103,   104,   105,   105,   106,   107,
-   107,   108,   108
+   102,   102,   102,   102,   103,   103,   104,   105,   105,   106,
+   107,   107,   108,   108
 };
 
 static const short yyr2[] = {     0,
@@ -359,12 +359,12 @@ static const short yyr2[] = {     0,
      1,     1,     1,     2,     2,     1,     1,     1,     1,     2,
      2,     4,     8,     1,     1,     1,     1,     1,     1,     1,
      1,     2,     3,     6,     1,     2,     1,     3,     1,     3,
-     3,     5,     4,     4,     6,     5,     2,     2,     2,     0,
-     1,     3,     2,     2,     2,     0,     1,     2,     2,     2,
-     2,     2,     1,     1,     2,     2,     2,     2,     2,     2,
+     3,     5,     4,     4,     6,     5,     2,     1,     2,     2,
+     0,     1,     3,     2,     2,     2,     0,     1,     2,     2,
+     2,     2,     2,     1,     1,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     5,     3,     2,     3,     3,     2,     5,
-     3,     1,     3
+     2,     2,     2,     2,     5,     3,     2,     3,     3,     2,
+     5,     3,     1,     3
 };
 
 static const short yydefact[] = {    13,
@@ -372,201 +372,199 @@ static const short yydefact[] = {    13,
      8,     8,     8,     2,     3,     4,    17,     0,    16,    15,
      9,     8,     0,     0,     0,    12,    11,    19,     0,     0,
     61,    66,     0,     0,     8,    62,     8,     0,     0,    55,
-     8,     0,    63,    67,    68,    69,    89,     8,     0,     0,
-    85,     0,     8,     8,     8,     8,     8,     8,     8,     8,
+     8,     0,    63,    67,    68,    69,    89,     8,     8,     0,
+     0,    85,     0,    98,     8,     8,     8,     8,     8,     8,
      8,     8,     8,     8,     8,     8,     8,     8,     8,     8,
-     8,     8,     8,     8,     8,     8,     8,    50,    49,     0,
-     0,   101,   107,   114,   113,     0,     0,    10,   141,   142,
-     0,    14,    82,     0,     8,    70,     0,     0,    54,     8,
-     8,    57,     8,     8,     0,    58,     0,    65,    60,    64,
-     8,     0,    98,     6,     0,    86,     8,    97,     8,   109,
-   110,   136,   131,   130,   132,   117,   118,   119,   120,   121,
-   122,   123,   124,   125,   126,   127,   128,   129,   133,   116,
-   115,   111,     0,   112,   108,   103,     7,     8,     8,     0,
-     0,     0,     0,     0,     8,     0,     0,    10,    22,    23,
-    24,    21,    26,    25,    18,     0,    83,     0,     8,     0,
-     5,     0,     0,    46,    47,    56,    59,    91,    88,     8,
-     0,     8,    90,     0,   135,     0,   105,   104,   102,    29,
-    28,    30,    31,     8,   139,     0,    34,     0,     0,    20,
-   140,   143,     8,    71,    75,    76,    77,    78,    79,    72,
-    74,     8,     0,     0,     8,    94,     0,    93,     0,     8,
-    34,    43,    42,     8,     0,    35,    45,    44,   138,   137,
-     0,     0,    51,    92,     8,     8,    96,   134,     0,     0,
-    41,    37,     8,     8,    84,    81,    80,     8,    95,    99,
-    27,    39,     0,     0,     0,    36,    73,    38,     8,    40,
-     0,     0,     0
+     8,     8,     8,     8,     8,     8,     8,     8,     8,    50,
+    49,     0,     0,   102,   108,   115,   114,     0,     0,    10,
+   142,   143,     0,    14,    82,     0,     8,    70,     0,     0,
+    54,     8,     8,    57,     8,     8,     0,    58,     0,    65,
+    60,    64,     8,     0,    99,   100,     6,     0,    86,     8,
+    97,     8,   110,   111,   137,   132,   131,   133,   118,   119,
+   120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+   130,   134,   117,   116,   112,     0,   113,   109,   104,     7,
+     8,     8,     0,     0,     0,     0,     0,     8,     0,     0,
+    10,    22,    23,    24,    21,    26,    25,    18,     0,    83,
+     0,     8,     0,     5,     0,     0,    46,    47,    56,    59,
+    91,    88,     8,     0,     8,    90,     0,   136,     0,   106,
+   105,   103,    29,    28,    30,    31,     8,   140,     0,    34,
+     0,     0,    20,   141,   144,     8,    71,    75,    76,    77,
+    78,    79,    72,    74,     8,     0,     0,     8,    94,     0,
+    93,     0,     8,    34,    43,    42,     8,     0,    35,    45,
+    44,   139,   138,     0,     0,    51,    92,     8,    96,   135,
+     0,     0,    41,    37,     8,     8,    84,    81,    80,     8,
+    95,    27,    39,     0,     0,     0,    36,    73,    38,     8,
+    40,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   261,
-     5,     6,     7,    10,    17,     8,    28,    87,   158,    88,
-   194,   239,   225,   159,   255,   226,   160,   161,   105,    80,
-    37,    38,    39,    40,    41,    42,    43,    44,   170,    45,
-   212,   248,    46,    49,    50,    51,    52,   237,    81,   150,
-    82,    83,    84,    85,   163,   164,    90,    91
+static const short yydefgoto[] = {   262,
+     5,     6,     7,    10,    17,     8,    28,    89,   161,    90,
+   197,   241,   228,   162,   256,   229,   163,   164,   107,    82,
+    37,    38,    39,    40,    41,    42,    43,    44,   173,    45,
+   215,   250,    46,    50,    51,    52,    53,    54,    83,   153,
+    84,    85,    86,    87,   166,   167,    92,    93
 };
 
-static const short yypact[] = {   174,
-    18,   -23,   -18,   -14,-32768,-32768,-32768,-32768,    79,    10,
--32768,-32768,-32768,    41,    41,    41,   149,    46,-32768,-32768,
--32768,-32768,   122,    15,   464,-32768,-32768,    70,   109,    31,
--32768,-32768,     1,    92,-32768,-32768,-32768,    44,   154,-32768,
-   213,   387,-32768,-32768,-32768,-32768,   102,-32768,    62,    81,
-    90,    14,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   280,
+    11,   -28,    -8,    35,-32768,-32768,-32768,-32768,   -31,    19,
+-32768,-32768,-32768,    39,    39,    39,   169,    14,-32768,-32768,
+-32768,-32768,   127,   155,   460,-32768,-32768,    73,    58,   106,
+-32768,-32768,   194,    82,-32768,-32768,-32768,    40,    34,-32768,
+   244,   174,-32768,-32768,-32768,-32768,    -9,-32768,-32768,    54,
+   150,    64,    12,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   530,
-   285,-32768,-32768,-32768,-32768,   110,   104,-32768,-32768,-32768,
-   129,-32768,-32768,   135,-32768,-32768,    20,    84,-32768,-32768,
--32768,-32768,-32768,-32768,   236,    41,   387,-32768,    41,-32768,
--32768,   141,    41,-32768,   112,   113,-32768,-32768,-32768,    41,
-    41,    41,    41,    41,    41,    41,    41,    41,    41,    41,
-    41,    41,    41,    41,    41,    41,    41,    41,    41,    41,
-    41,    41,   420,    41,-32768,-32768,-32768,-32768,-32768,   501,
-   131,    97,   123,   173,-32768,   178,   186,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   149,   189,-32768,   122,-32768,    33,
--32768,    15,   122,    41,    41,-32768,    41,    41,   139,-32768,
-   190,-32768,    41,   464,-32768,   336,    41,    41,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   153,   137,   165,   169,   149,
--32768,-32768,-32768,    41,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   151,   170,-32768,    41,   185,    41,   234,-32768,
-    82,-32768,-32768,-32768,    77,-32768,-32768,-32768,-32768,-32768,
-    19,    98,-32768,    41,-32768,-32768,-32768,    41,   160,    34,
-    41,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    41,    41,
--32768,    41,   137,    22,   291,-32768,-32768,-32768,-32768,    41,
-   203,   223,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   526,   287,-32768,-32768,-32768,-32768,   199,   110,-32768,
+-32768,-32768,   130,-32768,-32768,   148,-32768,-32768,    17,   109,
+-32768,-32768,-32768,-32768,-32768,-32768,   238,    39,   174,-32768,
+    39,-32768,-32768,   153,    39,    39,-32768,    47,   113,-32768,
+-32768,-32768,    39,    39,    39,    39,    39,    39,    39,    39,
+    39,    39,    39,    39,    39,    39,    39,    39,    39,    39,
+    39,    39,    39,    39,    39,   416,    39,-32768,-32768,-32768,
+-32768,-32768,   497,    67,   116,   118,   181,-32768,   193,   196,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,   169,   143,-32768,
+   127,-32768,   128,-32768,   155,   127,    39,    39,-32768,    39,
+    39,    71,-32768,   210,-32768,    39,   460,-32768,   338,    39,
+    39,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   121,    20,
+   159,   168,   169,-32768,-32768,-32768,    39,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,   164,   386,-32768,    39,   180,
+    39,   236,-32768,    96,-32768,-32768,-32768,   102,-32768,-32768,
+-32768,-32768,-32768,    21,    23,-32768,    39,-32768,-32768,    39,
+   167,    94,    39,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+    39,-32768,    39,    20,    24,   293,-32768,-32768,-32768,-32768,
+    39,   219,   220,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    -5,   -79,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,    -8,-32768,-32768,   -24,-32768,-32768,-32768,-32768,
-   -83,-32768,    60,   -94,-32768,   199,   -32,-32768,-32768,-32768,
--32768,-32768,-32768,    69,-32768,   192,-32768,-32768,   -46,-32768,
-   103,   172,-32768,-32768,-32768,-32768,    -6,   -42
+-32768,-32768,-32768,    -5,   -81,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,    -1,-32768,-32768,   -24,-32768,-32768,-32768,-32768,
+   -85,-32768,    56,   -96,-32768,   195,   -32,-32768,-32768,-32768,
+-32768,-32768,-32768,    59,-32768,   184,-32768,    16,   -55,-32768,
+    89,   162,-32768,-32768,-32768,-32768,    -6,   -42
 };
 
 
-#define	YYLAST		573
+#define	YYLAST		569
 
 
 static const short yytable[] = {    14,
-    15,    16,    20,   162,   112,    23,    24,    25,   165,   110,
-   176,    93,    21,    94,   118,    47,    30,    21,     9,    22,
-    -8,    21,    21,    11,    21,    48,   119,    -8,    12,    97,
-   169,    98,    13,    21,   242,   106,   109,   205,   206,   207,
-   208,   209,   113,    21,    99,    95,    29,   120,   121,   122,
-   123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-   133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-   143,   144,   181,   203,   110,   245,   257,   242,   200,    92,
-   152,   115,   -33,   244,    21,    86,    21,   210,   211,   168,
-   100,    48,   224,   101,   172,   173,   186,   174,   175,    21,
-    21,   177,    96,    -1,   153,   178,   192,   246,   247,   114,
-   151,   183,    -8,   184,    31,    32,    33,    34,    35,    -8,
-   154,   155,   156,   243,    21,    18,   244,    19,   -87,   166,
-   -32,   171,    31,    32,    33,    34,    35,   219,   117,    21,
-   193,   179,   187,   188,   191,   167,   195,   224,    18,   197,
-   111,    26,    27,    -8,   102,    18,    89,    36,    18,   202,
-   180,   182,   157,   204,   -48,   -48,   -48,   -48,   -48,    18,
-   102,   259,   202,   196,   216,    36,   218,    18,   198,   190,
-   -48,   -48,   -48,   -48,   -48,    18,   199,   215,   221,   223,
-   217,   228,   230,     1,     2,     3,     4,   231,   233,    18,
-   -52,   222,   262,   -52,   103,   104,   232,   -48,   251,   234,
-   202,    18,   240,   227,   238,    18,   -53,   229,   241,   -53,
-   103,   104,   263,   -48,    32,    33,    34,    35,   256,   249,
-   250,    18,   214,   235,   146,    18,   201,   252,   253,   107,
-   213,   116,   254,  -106,  -106,  -106,    31,    32,    33,    34,
-    35,   145,   189,   260,     0,     0,     0,   236,  -106,  -106,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-     0,  -100,  -100,   148,  -106,   146,  -106,     0,     0,    36,
-     0,   149,     0,     0,  -106,  -106,  -106,     0,     0,     0,
-     0,    31,    32,    33,    34,    35,     0,     0,     0,  -106,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-  -106,     0,   147,     0,   148,  -106,   146,  -106,   258,     0,
-     0,     0,   149,     0,    36,  -106,  -106,  -106,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,
-  -106,  -106,     0,     0,     0,   148,  -106,   108,  -106,    -8,
-     0,     0,   220,   149,     0,     0,     0,    -8,    32,    33,
-    34,    35,     0,     0,     0,     0,     0,     0,     0,     0,
+    15,    16,    20,   165,   114,    23,    24,    25,   168,   112,
+   179,     9,   121,    -8,    29,    18,    30,    19,    11,    21,
+    -8,    21,    21,    21,   122,    21,    21,   172,    22,    99,
+   227,   100,   248,   249,   104,   108,   111,    18,    12,   113,
+   101,    21,   115,   116,   -48,   -48,   -48,   -48,   -48,   123,
+   124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
+   134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+   144,   145,   146,   147,   206,   184,   112,   247,   258,   203,
+   -52,    13,   155,   -52,   105,   106,   102,   -48,    88,   103,
+   189,   171,    98,    18,   244,   183,   175,   176,    21,   177,
+   178,   117,   244,   180,    18,    91,   227,   181,    21,    -1,
+   156,    21,   120,    18,   186,   193,   187,    18,    21,   218,
+    31,    32,    33,    34,    35,   195,   157,   158,   159,    21,
+   169,   222,   208,   209,   210,   211,   212,    31,    32,    33,
+    34,    35,   -33,   246,   -32,   190,   191,   194,   245,   198,
+   118,   246,   200,   182,    94,    47,   174,    21,   170,   196,
+    48,   185,   205,    36,    18,    48,   207,    18,   160,   225,
+   260,    26,    27,    49,   110,   205,    -8,   219,    49,   221,
+    36,   199,   213,   214,    -8,    32,    33,    34,    35,    18,
+   204,   224,   226,   201,   231,   233,   202,   -87,  -101,   154,
+   234,    -8,  -101,  -101,    95,    18,    96,   230,    -8,   235,
+   220,   236,   237,   205,    18,   252,   232,   240,   263,   264,
+    -8,   243,   242,    -8,    -8,    -8,    18,    -8,   238,   257,
+    -8,   217,   251,   216,   119,   109,   149,   239,    97,   253,
+   254,   192,    -8,   148,   255,  -107,  -107,  -107,    31,    32,
+    33,    34,    35,     0,   261,    32,    33,    34,    35,    49,
+  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,     0,  -101,  -101,   151,  -107,   149,  -107,     0,
+     0,    36,     0,   152,     0,     0,  -107,  -107,  -107,     1,
+     2,     3,     4,    31,    32,    33,    34,    35,     0,     0,
+     0,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,  -107,     0,   150,     0,   151,  -107,   149,  -107,
+   259,     0,     0,     0,   152,     0,    36,  -107,  -107,  -107,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   185,     0,    21,     0,     0,     0,     0,     0,     0,    53,
-    54,    55,     0,    -8,     0,     0,    -8,    -8,    -8,     0,
-    -8,     0,     0,    -8,    56,    57,    58,    59,    60,    61,
-    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-    72,    73,    74,    75,    76,    77,    21,     0,     0,     0,
-    78,     0,    79,    53,    54,    55,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    56,    57,
+     0,     0,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,  -107,
+  -107,  -107,  -107,  -107,     0,     0,   104,   151,  -107,     0,
+  -107,     0,     0,     0,   223,   152,   -48,   -48,   -48,   -48,
+   -48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   188,     0,    21,     0,
+     0,     0,     0,     0,     0,    55,    56,    57,     0,     0,
+     0,     0,   -53,     0,     0,   -53,   105,   106,     0,   -48,
     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-    53,    54,    55,     0,    78,     0,    79,     0,     0,     0,
-     0,     0,     0,     0,     0,    56,    57,    58,    59,    60,
-    61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-    71,    72,    73,    74,    75,    76,    77,     0,     0,     0,
-     0,    78,     0,    79,    56,    57,    58,    59,    60,    61,
-    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-    72,    73,    74
+    78,    79,    21,     0,     0,     0,    80,     0,    81,    55,
+    56,    57,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    58,    59,    60,    61,    62,    63,
+    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+    74,    75,    76,    77,    78,    79,    55,    56,    57,     0,
+    80,     0,    81,     0,     0,     0,     0,     0,     0,     0,
+     0,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,     0,     0,     0,     0,    80,     0,    81,
+    58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+    68,    69,    70,    71,    72,    73,    74,    75,    76
 };
 
 static const short yycheck[] = {     5,
-     6,     7,     9,    87,    47,    11,    12,    13,    88,    42,
-   105,    11,     3,    13,     1,     1,    22,     3,     1,    10,
-     3,     3,     3,    47,     3,    11,    13,    10,    47,    35,
-    11,    37,    47,     3,     1,    41,    42,     5,     6,     7,
-     8,     9,    48,     3,     1,    45,     1,    53,    54,    55,
+     6,     7,     9,    89,    47,    11,    12,    13,    90,    42,
+   107,     1,     1,     3,     1,    47,    22,    49,    47,     3,
+    10,     3,     3,     3,    13,     3,     3,    11,    10,    35,
+    11,    37,    10,    11,     1,    41,    42,    47,    47,    49,
+     1,     3,    48,    49,    11,    12,    13,    14,    15,    55,
     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
     66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,   115,   168,   107,    57,    55,     1,   158,    49,
-    86,     1,    49,    50,     3,    16,     3,    55,    56,    95,
-    47,    11,    11,    50,   100,   101,   143,   103,   104,     3,
-     3,   107,    11,     0,     1,   111,    10,    10,    11,    48,
-     1,   117,     3,   119,    11,    12,    13,    14,    15,    10,
-    17,    18,    19,    47,     3,    47,    50,    49,    48,     1,
-    49,    48,    11,    12,    13,    14,    15,   184,    49,     3,
-    44,     1,   148,   149,   151,    11,   153,    11,    47,   155,
-    49,     3,     4,    44,     1,    47,    48,    54,    47,   166,
-    49,    49,    59,   169,    11,    12,    13,    14,    15,    47,
-     1,   255,   179,     1,   180,    54,   182,    47,     1,    49,
-    11,    12,    13,    14,    15,    47,     1,    49,   194,   196,
-     1,   198,   199,    20,    21,    22,    23,   203,    48,    47,
-    47,    49,     0,    50,    51,    52,   212,    54,    49,   215,
-   217,    47,   221,    49,   220,    47,    47,    49,   224,    50,
-    51,    52,     0,    54,    12,    13,    14,    15,   253,   235,
-   236,    47,   173,    49,     1,    47,    48,   243,   244,    41,
-   172,    50,   248,    10,    11,    12,    11,    12,    13,    14,
-    15,    80,   150,   259,    -1,    -1,    -1,    24,    25,    26,
-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    -1,    48,    49,    50,    51,     1,    53,    -1,    -1,    54,
-    -1,    58,    -1,    -1,    10,    11,    12,    -1,    -1,    -1,
-    -1,    11,    12,    13,    14,    15,    -1,    -1,    -1,    25,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    -1,    48,    -1,    50,    51,     1,    53,    48,    -1,
-    -1,    -1,    58,    -1,    54,    10,    11,    12,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    76,    77,    78,    79,   171,   118,   109,    57,    55,   161,
+    47,    47,    88,    50,    51,    52,    47,    54,    16,    50,
+   146,    97,    11,    47,     1,    49,   102,   103,     3,   105,
+   106,    48,     1,   109,    47,    48,    11,   113,     3,     0,
+     1,     3,    49,    47,   120,    49,   122,    47,     3,    49,
+    11,    12,    13,    14,    15,    10,    17,    18,    19,     3,
+     1,   187,     5,     6,     7,     8,     9,    11,    12,    13,
+    14,    15,    49,    50,    49,   151,   152,   154,    47,   156,
+     1,    50,   158,     1,    49,     1,    48,     3,    11,    44,
+    11,    49,   169,    54,    47,    11,   172,    47,    59,    49,
+   256,     3,     4,    24,     1,   182,     3,   183,    24,   185,
+    54,     1,    55,    56,    11,    12,    13,    14,    15,    47,
+    48,   197,   199,     1,   201,   202,     1,    48,    49,     1,
+   206,     3,    48,    49,    11,    47,    13,    49,    10,   215,
+     1,    48,   218,   220,    47,    49,    49,   223,     0,     0,
+    47,   227,   224,    50,    51,    52,    47,    54,    49,   254,
+    57,   176,   238,   175,    51,    41,     1,   222,    45,   245,
+   246,   153,    44,    82,   250,    10,    11,    12,    11,    12,
+    13,    14,    15,    -1,   260,    12,    13,    14,    15,    24,
     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-    45,    46,    -1,    -1,    -1,    50,    51,     1,    53,     3,
-    -1,    -1,    57,    58,    -1,    -1,    -1,    11,    12,    13,
-    14,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    45,    46,    -1,    48,    49,    50,    51,     1,    53,    -1,
+    -1,    54,    -1,    58,    -1,    -1,    10,    11,    12,    20,
+    21,    22,    23,    11,    12,    13,    14,    15,    -1,    -1,
+    -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    46,    -1,    48,    -1,    50,    51,     1,    53,
+    48,    -1,    -1,    -1,    58,    -1,    54,    10,    11,    12,
     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    10,
-    11,    12,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
-    54,    -1,    -1,    57,    25,    26,    27,    28,    29,    30,
-    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-    41,    42,    43,    44,    45,    46,     3,    -1,    -1,    -1,
-    51,    -1,    53,    10,    11,    12,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,
-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    10,    11,    12,    -1,    51,    -1,    53,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    25,    26,    27,    28,    29,
-    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-    40,    41,    42,    43,    44,    45,    46,    -1,    -1,    -1,
-    -1,    51,    -1,    53,    25,    26,    27,    28,    29,    30,
+    -1,    -1,    25,    26,    27,    28,    29,    30,    31,    32,
+    33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    46,    -1,    -1,     1,    50,    51,    -1,
+    53,    -1,    -1,    -1,    57,    58,    11,    12,    13,    14,
+    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,    -1,
+    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    -1,    -1,
+    -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    54,
+    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+    45,    46,     3,    -1,    -1,    -1,    51,    -1,    53,    10,
+    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    25,    26,    27,    28,    29,    30,
     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-    41,    42,    43
+    41,    42,    43,    44,    45,    46,    10,    11,    12,    -1,
+    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    46,    -1,    -1,    -1,    -1,    51,    -1,    53,
+    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+    35,    36,    37,    38,    39,    40,    41,    42,    43
 };
 #define YYPURE 1
 
@@ -1734,29 +1732,36 @@ case 97:
     ;
     break;}
 case 98:
-#line 803 "parser.y"
+#line 801 "parser.y"
+{
+        /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
+        yyval.ok = false;
+    ;
+    break;}
+case 99:
+#line 808 "parser.y"
 {
 	QString str = qString(yyvsp[-1].string);
 	yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
     ;
     break;}
-case 99:
-#line 810 "parser.y"
+case 100:
+#line 815 "parser.y"
 { yyval.b = true; ;
     break;}
-case 100:
-#line 811 "parser.y"
+case 101:
+#line 816 "parser.y"
 { yyval.b = false; ;
     break;}
-case 101:
-#line 815 "parser.y"
+case 102:
+#line 820 "parser.y"
 {
 	yyval.valueList = new ValueList;
 	yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
-case 102:
-#line 819 "parser.y"
+case 103:
+#line 824 "parser.y"
 {
         yyval.valueList = yyvsp[-2].valueList;
 	if ( yyval.valueList ) {
@@ -1771,45 +1776,45 @@ case 102:
         }
     ;
     break;}
-case 103:
-#line 832 "parser.y"
+case 104:
+#line 837 "parser.y"
 {
         delete yyvsp[-1].valueList;
         yyval.valueList = 0;
     ;
     break;}
-case 104:
-#line 839 "parser.y"
+case 105:
+#line 844 "parser.y"
 {
 	yyval.tok = '/';
     ;
     break;}
-case 105:
-#line 842 "parser.y"
+case 106:
+#line 847 "parser.y"
 {
 	yyval.tok = ',';
     ;
     break;}
-case 106:
-#line 845 "parser.y"
+case 107:
+#line 850 "parser.y"
 {
         yyval.tok = 0;
   ;
     break;}
-case 107:
-#line 851 "parser.y"
+case 108:
+#line 856 "parser.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
-case 108:
-#line 852 "parser.y"
+case 109:
+#line 857 "parser.y"
 { yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
     break;}
-case 109:
-#line 853 "parser.y"
+case 110:
+#line 858 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_STRING; ;
     break;}
-case 110:
-#line 854 "parser.y"
+case 111:
+#line 859 "parser.y"
 {
       QString str = qString( yyvsp[-1].string );
       yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1817,102 +1822,102 @@ case 110:
       yyval.value.string = yyvsp[-1].string;
   ;
     break;}
-case 111:
-#line 860 "parser.y"
+case 112:
+#line 865 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
     break;}
-case 112:
-#line 861 "parser.y"
+case 113:
+#line 866 "parser.y"
 { yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
     break;}
-case 113:
-#line 862 "parser.y"
+case 114:
+#line 867 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
-case 114:
-#line 864 "parser.y"
+case 115:
+#line 869 "parser.y"
 {
       yyval.value = yyvsp[0].value;
   ;
     break;}
-case 115:
-#line 870 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
-    break;}
 case 116:
-#line 871 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
+#line 875 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
     break;}
 case 117:
-#line 872 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
+#line 876 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
     break;}
 case 118:
-#line 873 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
+#line 877 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
     break;}
 case 119:
-#line 874 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
+#line 878 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
     break;}
 case 120:
-#line 875 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
+#line 879 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
     break;}
 case 121:
-#line 876 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
+#line 880 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
     break;}
 case 122:
-#line 877 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
+#line 881 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
     break;}
 case 123:
-#line 878 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
+#line 882 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
     break;}
 case 124:
-#line 879 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
+#line 883 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
     break;}
 case 125:
-#line 880 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
+#line 884 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
     break;}
 case 126:
-#line 881 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
+#line 885 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
     break;}
 case 127:
-#line 882 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
+#line 886 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
     break;}
 case 128:
-#line 883 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
+#line 887 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
     break;}
 case 129:
-#line 884 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
+#line 888 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
     break;}
 case 130:
-#line 885 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
+#line 889 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
     break;}
 case 131:
-#line 886 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
+#line 890 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
     break;}
 case 132:
-#line 887 "parser.y"
-{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
+#line 891 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
     break;}
 case 133:
-#line 888 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
+#line 892 "parser.y"
+{ yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
     break;}
 case 134:
 #line 893 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
+    break;}
+case 135:
+#line 898 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -1922,20 +1927,20 @@ case 134:
       yyval.value.function = f;
   ;
     break;}
-case 135:
-#line 901 "parser.y"
+case 136:
+#line 906 "parser.y"
 {
       yyval.value.id = 0;
       yyval.value.unit = Value::Function;
       yyval.value.function = 0;
   ;
     break;}
-case 136:
-#line 913 "parser.y"
+case 137:
+#line 918 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
-case 137:
-#line 920 "parser.y"
+case 138:
+#line 925 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1943,8 +1948,8 @@ case 137:
 #endif
     ;
     break;}
-case 138:
-#line 926 "parser.y"
+case 139:
+#line 931 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1952,8 +1957,8 @@ case 138:
 #endif
     ;
     break;}
-case 139:
-#line 935 "parser.y"
+case 140:
+#line 940 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2183,6 +2188,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 970 "parser.y"
+#line 975 "parser.y"
 
 
diff --git a/WebCore/khtml/css/parser.y b/WebCore/khtml/css/parser.y
index 762ea78..be0f204 100644
--- a/WebCore/khtml/css/parser.y
+++ b/WebCore/khtml/css/parser.y
@@ -317,7 +317,7 @@ rule_list:
 	 delete $2;
      }
  }
-    ;
+ ;
 
 rule:
     ruleset
@@ -797,6 +797,11 @@ declaration:
     property error {
         $$ = false;
     }
+    |
+    prio {
+        /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
+        $$ = false;
+    }
   ;
 
 property:
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index d0788f6..765b439 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -939,7 +939,7 @@ void RenderBox::calcAbsoluteHorizontal()
         //1. solve left & width.
         if (l==AUTO && w==AUTO && r!=AUTO)
         {
-            w = QMIN(m_maxWidth, cw - ( r + ml + mr + pab));
+            w = QMIN(m_maxWidth-pab, cw - ( r + ml + mr + pab));
             l = cw - ( r + w + ml + mr + pab);
         }
         else
@@ -964,7 +964,7 @@ void RenderBox::calcAbsoluteHorizontal()
         //3. solve width & right.
         if (l!=AUTO && w==AUTO && r==AUTO)
         {
-            w = QMIN(m_maxWidth, cw - ( l + ml + mr + pab));
+            w = QMIN(m_maxWidth-pab, cw - ( l + ml + mr + pab));
             r = cw - ( l + w + ml + mr + pab);
         }
         else
diff --git a/WebCore/khtml/rendering/render_list.cpp b/WebCore/khtml/rendering/render_list.cpp
index eda51be..0947b1e 100644
--- a/WebCore/khtml/rendering/render_list.cpp
+++ b/WebCore/khtml/rendering/render_list.cpp
@@ -371,14 +371,15 @@ void RenderListMarker::paintObject(QPainter *p, int, int _y,
         }
         
         // Now that we have our xoffset within the listbox, we need to adjust ourselves by the delta
-        // between our current xoffset and our desired position.
+        // between our current xoffset and our desired position (which is just outside the border box
+        // of the list item).
         if (style()->direction() == LTR) {
             leftLineOffset = m_listItem->leftRelOffset(yOffset, m_listItem->leftOffset(yOffset));
-            _tx -= (xOffset - leftLineOffset);
+            _tx -= (xOffset - leftLineOffset) + m_listItem->paddingLeft() + m_listItem->borderLeft();
         }
         else {
             rightLineOffset = m_listItem->rightRelOffset(yOffset, m_listItem->rightOffset(yOffset));
-            _tx += (rightLineOffset-xOffset);
+            _tx += (rightLineOffset-xOffset) + m_listItem->paddingRight() + m_listItem->borderRight();
         }
     }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list