[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 08:08:40 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit f0d128744fbef20aad7ec10be0e5de081829e411
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Nov 3 05:53:27 2003 +0000

    	Fix for 3468924, an implementation of outline-offset.  We also give :focus links a built-in offset of
    	outline-width/2  by default for the Apple Aqua style.
    
    	Fix for 3470660, input type=image excluded from tab order.
    
            Reviewed by darin
    
            * khtml/css/cssparser.cpp:
            (CSSParser::parseValue):
            * khtml/css/cssproperties.c:
            (hash_prop):
            (findProp):
            * khtml/css/cssproperties.h:
            * khtml/css/cssproperties.in:
            * khtml/css/cssstyleselector.cpp:
            (khtml::CSSStyleSelector::applyRule):
            * khtml/css/html4.css:
            * khtml/rendering/render_box.cpp:
            (RenderBox::getAbsoluteRepaintRect):
            (RenderBox::computeAbsoluteRepaintRect):
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::getAbsoluteRepaintRect):
            * khtml/rendering/render_inline.cpp:
            (RenderInline::paintFocusRing):
            (RenderInline::paintOutlines):
            (RenderInline::paintOutline):
            * khtml/rendering/render_object.cpp:
            (RenderObject::paintOutline):
            * khtml/rendering/render_style.h:
            (khtml::OutlineValue::OutlineValue):
            (khtml::RenderStyle::outlineSize):
            (khtml::RenderStyle::outlineOffset):
            (khtml::RenderStyle::setOutlineOffset):
            * khtml/rendering/render_text.cpp:
            (RenderText::paintObject):
            * kwq/KWQPainter.h:
            * kwq/KWQPainter.mm:
            (QPainterPrivate::QPainterPrivate):
            (QPainter::initFocusRing):
            (QPainter::addFocusRingRect):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5358 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 46f8d8d..3e04aad 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,46 @@
+2003-11-01  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3468924, an implementation of outline-offset.  We also give :focus links a built-in offset of 
+	outline-width/2  by default for the Apple Aqua style.
+
+	Fix for 3470660, input type=image excluded from tab order.
+	
+        Reviewed by darin
+
+        * khtml/css/cssparser.cpp:
+        (CSSParser::parseValue):
+        * khtml/css/cssproperties.c:
+        (hash_prop):
+        (findProp):
+        * khtml/css/cssproperties.h:
+        * khtml/css/cssproperties.in:
+        * khtml/css/cssstyleselector.cpp:
+        (khtml::CSSStyleSelector::applyRule):
+        * khtml/css/html4.css:
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::getAbsoluteRepaintRect):
+        (RenderBox::computeAbsoluteRepaintRect):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::getAbsoluteRepaintRect):
+        * khtml/rendering/render_inline.cpp:
+        (RenderInline::paintFocusRing):
+        (RenderInline::paintOutlines):
+        (RenderInline::paintOutline):
+        * khtml/rendering/render_object.cpp:
+        (RenderObject::paintOutline):
+        * khtml/rendering/render_style.h:
+        (khtml::OutlineValue::OutlineValue):
+        (khtml::RenderStyle::outlineSize):
+        (khtml::RenderStyle::outlineOffset):
+        (khtml::RenderStyle::setOutlineOffset):
+        * khtml/rendering/render_text.cpp:
+        (RenderText::paintObject):
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainterPrivate::QPainterPrivate):
+        (QPainter::initFocusRing):
+        (QPainter::addFocusRingRect):
+
 2003-11-01  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Darin.
diff --git a/WebCore/khtml/css/cssparser.cpp b/WebCore/khtml/css/cssparser.cpp
index 9e160d3..de064ab 100644
--- a/WebCore/khtml/css/cssparser.cpp
+++ b/WebCore/khtml/css/cssparser.cpp
@@ -992,6 +992,9 @@ bool CSSParser::parseValue( int propId, bool important )
 	break;
 
     /* CSS3 properties */
+    case CSS_PROP_OUTLINE_OFFSET:
+        valid_primitive = validUnit(value, FLength, strict&(!nonCSSHint));
+        break;
     case CSS_PROP_TEXT_SHADOW: // CSS2 property, dropped in CSS2.1, back in CSS3, so treat as CSS3
         if (id == CSS_VAL_NONE)
             valid_primitive = true;
diff --git a/WebCore/khtml/css/cssproperties.c b/WebCore/khtml/css/cssproperties.c
index 1fb04fb..08e5c10 100644
--- a/WebCore/khtml/css/cssproperties.c
+++ b/WebCore/khtml/css/cssproperties.c
@@ -7,7 +7,7 @@ struct props {
     const char *name;
     int id;
 };
-/* maximum key range = 988, duplicates = 0 */
+/* maximum key range = 1183, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -21,32 +21,32 @@ hash_prop (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993,   0, 993, 993, 993, 993,
-      993,  10, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993,  15,  10,   0,
-        0,   0, 180,  35,   0,   0,   0,   0,   0,  10,
-      315,   0,  65,  25,   0,  25,   0,  20,  30, 240,
-      125, 155,   5, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
-      993, 993, 993, 993, 993, 993
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188,    0, 1188, 1188, 1188, 1188,
+      1188,    5, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188,   15,   10,    0,
+         0,    0,   10,   35,    0,    0,    5,    0,    0,   10,
+       320,    0,   65,   25,    0,   25,    0,  200,   20,  260,
+       135,  155,   45, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+      1188, 1188, 1188, 1188, 1188, 1188
     };
   register int hval = len;
 
@@ -130,141 +130,142 @@ findProp (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 129,
+      TOTAL_KEYWORDS = 130,
       MIN_WORD_LENGTH = 3,
       MAX_WORD_LENGTH = 32,
       MIN_HASH_VALUE = 5,
-      MAX_HASH_VALUE = 992
+      MAX_HASH_VALUE = 1187
     };
 
   static const struct props wordlist_prop[] =
     {
       {"color", CSS_PROP_COLOR},
+      {"left", CSS_PROP_LEFT},
       {"border", CSS_PROP_BORDER},
       {"clear", CSS_PROP_CLEAR},
       {"border-color", CSS_PROP_BORDER_COLOR},
       {"bottom", CSS_PROP_BOTTOM},
-      {"size", CSS_PROP_SIZE},
+      {"float", CSS_PROP_FLOAT},
+      {"border-left", CSS_PROP_BORDER_LEFT},
+      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
       {"right", CSS_PROP_RIGHT},
       {"height", CSS_PROP_HEIGHT},
       {"border-bottom", CSS_PROP_BORDER_BOTTOM},
       {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
-      {"cursor", CSS_PROP_CURSOR},
       {"border-right", CSS_PROP_BORDER_RIGHT},
       {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
       {"top", CSS_PROP_TOP},
       {"clip", CSS_PROP_CLIP},
-      {"quotes", CSS_PROP_QUOTES},
+      {"size", CSS_PROP_SIZE},
+      {"marker-offset", CSS_PROP_MARKER_OFFSET},
       {"border-top", CSS_PROP_BORDER_TOP},
       {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
       {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
-      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
       {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
       {"page", CSS_PROP_PAGE},
       {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
       {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
-      {"left", CSS_PROP_LEFT},
-      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
-      {"max-height", CSS_PROP_MAX_HEIGHT},
-      {"float", CSS_PROP_FLOAT},
-      {"border-left", CSS_PROP_BORDER_LEFT},
+      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
+      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
       {"border-style", CSS_PROP_BORDER_STYLE},
-      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
+      {"max-height", CSS_PROP_MAX_HEIGHT},
       {"list-style", CSS_PROP_LIST_STYLE},
-      {"table-layout", CSS_PROP_TABLE_LAYOUT},
-      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
+      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
       {"visibility", CSS_PROP_VISIBILITY},
-      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
+      {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
+      {"cursor", CSS_PROP_CURSOR},
       {"opacity", CSS_PROP_OPACITY},
       {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
+      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
+      {"quotes", CSS_PROP_QUOTES},
       {"width", CSS_PROP_WIDTH},
-      {"border-width", CSS_PROP_BORDER_WIDTH},
-      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
       {"empty-cells", CSS_PROP_EMPTY_CELLS},
       {"display", CSS_PROP_DISPLAY},
       {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
-      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
       {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+      {"border-width", CSS_PROP_BORDER_WIDTH},
+      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+      {"overflow", CSS_PROP_OVERFLOW},
+      {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
       {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
+      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
       {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
       {"direction", CSS_PROP_DIRECTION},
+      {"font", CSS_PROP_FONT},
       {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
       {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
-      {"outline", CSS_PROP_OUTLINE},
-      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
-      {"outline-color", CSS_PROP_OUTLINE_COLOR},
-      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
-      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
-      {"white-space", CSS_PROP_WHITE_SPACE},
-      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
       {"line-height", CSS_PROP_LINE_HEIGHT},
+      {"font-stretch", CSS_PROP_FONT_STRETCH},
+      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
+      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
       {"min-height", CSS_PROP_MIN_HEIGHT},
-      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
-      {"counter-reset", CSS_PROP_COUNTER_RESET},
+      {"white-space", CSS_PROP_WHITE_SPACE},
       {"margin", CSS_PROP_MARGIN},
-      {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
-      {"max-width", CSS_PROP_MAX_WIDTH},
-      {"background", CSS_PROP_BACKGROUND},
+      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+      {"margin-left", CSS_PROP_MARGIN_LEFT},
+      {"table-layout", CSS_PROP_TABLE_LAYOUT},
+      {"font-size", CSS_PROP_FONT_SIZE},
       {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
-      {"background-color", CSS_PROP_BACKGROUND_COLOR},
       {"position", CSS_PROP_POSITION},
-      {"text-shadow", CSS_PROP_TEXT_SHADOW},
-      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
-      {"margin-right", CSS_PROP_MARGIN_RIGHT},
-      {"marker-offset", CSS_PROP_MARKER_OFFSET},
       {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+      {"margin-right", CSS_PROP_MARGIN_RIGHT},
+      {"max-width", CSS_PROP_MAX_WIDTH},
       {"orphans", CSS_PROP_ORPHANS},
       {"caption-side", CSS_PROP_CAPTION_SIDE},
-      {"padding", CSS_PROP_PADDING},
       {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
-      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+      {"padding", CSS_PROP_PADDING},
+      {"text-shadow", CSS_PROP_TEXT_SHADOW},
       {"margin-top", CSS_PROP_MARGIN_TOP},
-      {"z-index", CSS_PROP_Z_INDEX},
-      {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
-      {"overflow", CSS_PROP_OVERFLOW},
+      {"padding-left", CSS_PROP_PADDING_LEFT},
+      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
       {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
-      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
       {"letter-spacing", CSS_PROP_LETTER_SPACING},
+      {"padding-right", CSS_PROP_PADDING_RIGHT},
+      {"border-spacing", CSS_PROP_BORDER_SPACING},
       {"text-decoration", CSS_PROP_TEXT_DECORATION},
-      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
       {"text-decoration-color", CSS_PROP_TEXT_DECORATION_COLOR},
       {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
-      {"padding-right", CSS_PROP_PADDING_RIGHT},
-      {"border-spacing", CSS_PROP_BORDER_SPACING},
       {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
-      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
-      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
       {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
-      {"font", CSS_PROP_FONT},
+      {"z-index", CSS_PROP_Z_INDEX},
+      {"padding-top", CSS_PROP_PADDING_TOP},
       {"text-align", CSS_PROP_TEXT_ALIGN},
       {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
-      {"padding-top", CSS_PROP_PADDING_TOP},
-      {"widows", CSS_PROP_WIDOWS},
+      {"font-style", CSS_PROP_FONT_STYLE},
+      {"outline", CSS_PROP_OUTLINE},
+      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
+      {"font-family", CSS_PROP_FONT_FAMILY},
+      {"outline-color", CSS_PROP_OUTLINE_COLOR},
       {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
-      {"outline-style", CSS_PROP_OUTLINE_STYLE},
-      {"font-stretch", CSS_PROP_FONT_STRETCH},
-      {"font-size", CSS_PROP_FONT_SIZE},
+      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
       {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
-      {"margin-left", CSS_PROP_MARGIN_LEFT},
+      {"widows", CSS_PROP_WIDOWS},
+      {"counter-reset", CSS_PROP_COUNTER_RESET},
+      {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
+      {"background", CSS_PROP_BACKGROUND},
+      {"background-color", CSS_PROP_BACKGROUND_COLOR},
       {"min-width", CSS_PROP_MIN_WIDTH},
-      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
       {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
-      {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
-      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
-      {"padding-left", CSS_PROP_PADDING_LEFT},
       {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
+      {"font-weight", CSS_PROP_FONT_WEIGHT},
       {"content", CSS_PROP_CONTENT},
-      {"text-transform", CSS_PROP_TEXT_TRANSFORM},
-      {"font-style", CSS_PROP_FONT_STYLE},
+      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
+      {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
+      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
+      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
+      {"font-variant", CSS_PROP_FONT_VARIANT},
+      {"outline-style", CSS_PROP_OUTLINE_STYLE},
       {"word-spacing", CSS_PROP_WORD_SPACING},
-      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
       {"text-indent", CSS_PROP_TEXT_INDENT},
+      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
+      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
+      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
       {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
-      {"font-weight", CSS_PROP_FONT_WEIGHT},
       {"background-position", CSS_PROP_BACKGROUND_POSITION},
-      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
-      {"font-family", CSS_PROP_FONT_FAMILY},
-      {"font-variant", CSS_PROP_FONT_VARIANT},
       {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
       {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
       {"counter-increment", CSS_PROP_COUNTER_INCREMENT}
@@ -273,105 +274,124 @@ findProp (register const char *str, register unsigned int len)
   static const short lookup[] =
     {
        -1,  -1,  -1,  -1,  -1,   0,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,
-        2,  -1,   3,  -1,  -1,  -1,   4,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,   5,  -1,  -1,  -1,  -1,  -1,
-        6,   7,  -1,   8,  -1,  -1,  -1,  -1,  -1,   9,
-       -1,  10,  -1,  -1,  -1,  -1,  -1,  11,  -1,  -1,
-       -1,  -1,  -1,  12,  -1,  -1,  -1,  -1,  13,  14,
-       -1,  -1,  -1,  -1,  -1,  -1,  15,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  16,  17,  -1,  -1,  -1,
-       -1,  18,  -1,  -1,  19,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  20,  21,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       22,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  23,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  24,  -1,  -1,  -1,  -1,  -1,
-       25,  -1,  -1,  -1,  -1,  26,  -1,  -1,  -1,  -1,
-       27,  28,  29,  -1,  -1,  -1,  -1,  30,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  31,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  32,  -1,  33,
-       34,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       35,  -1,  36,  37,  -1,  38,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  39,  -1,  -1,  40,  41,  42,  -1,  -1,
-       -1,  43,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       44,  45,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  46,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  47,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  48,  -1,  49,  -1,  -1,  -1,
-       -1,  50,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  51,  -1,  -1,  -1,  -1,  52,  53,  -1,
-       -1,  54,  55,  -1,  -1,  -1,  56,  57,  -1,  -1,
-       -1,  58,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       59,  60,  -1,  61,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  62,  -1,  -1,  -1,  -1,  -1,  63,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  64,
-       -1,  -1,  -1,  -1,  -1,  65,  -1,  -1,  66,  -1,
-       -1,  67,  -1,  68,  -1,  -1,  69,  -1,  -1,  70,
-       -1,  -1,  71,  72,  73,  -1,  -1,  74,  -1,  -1,
-       -1,  -1,  75,  -1,  -1,  -1,  -1,  76,  -1,  -1,
-       77,  -1,  -1,  -1,  -1,  -1,  -1,  78,  -1,  -1,
-       79,  -1,  80,  -1,  -1,  -1,  81,  -1,  82,  -1,
-       -1,  -1,  -1,  -1,  83,  84,  -1,  -1,  -1,  85,
-       86,  87,  -1,  -1,  -1,  -1,  88,  89,  90,  91,
-       92,  -1,  -1,  -1,  -1,  93,  -1,  -1,  -1,  -1,
-       -1,  -1,  94,  -1,  -1,  -1,  -1,  95,  -1,  96,
-       97,  98,  -1,  -1,  -1,  -1,  99,  -1,  -1,  -1,
-       -1, 100,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 101,  -1, 102,  -1,
-       -1,  -1, 103,  -1, 104,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      105,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 106,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 107,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 108,  -1,
+       -1,  -1,  -1,  -1,   1,  -1,   2,  -1,  -1,  -1,
+        3,  -1,   4,  -1,  -1,  -1,   5,  -1,  -1,  -1,
+        6,   7,  -1,  -1,  -1,  -1,  -1,   8,  -1,  -1,
+        9,  10,  -1,  11,  -1,  -1,  -1,  -1,  -1,  12,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  13,  -1,  -1,
+       -1,  -1,  -1,  14,  -1,  -1,  -1,  -1,  15,  16,
+       -1,  -1,  -1,  -1,  17,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  18,  -1,  19,  20,  -1,  -1,  -1,
+       -1,  21,  -1,  -1,  -1,  22,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  23,  -1,  -1,  -1,  -1,  -1,  24,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       25,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  26,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,
+       -1,  28,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  29,  -1,  -1,  30,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  31,  -1,  32,  -1,  -1,
+       33,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  34,
+       -1,  35,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  36,  37,  -1,  -1,  -1,  -1,  -1,  -1,
+       38,  -1,  -1,  -1,  -1,  -1,  39,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  40,  41,  42,  -1,  -1,
+       -1,  43,  -1,  -1,  44,  -1,  -1,  -1,  -1,  -1,
+       -1,  45,  46,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  47,  48,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  49,  -1,  -1,  50,
+       -1,  -1,  -1,  -1,  -1,  51,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  52,  -1,  -1,  -1,  -1,  -1,  53,
+       -1,  -1,  -1,  -1,  54,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  55,  -1,  -1,  -1,
+       -1,  56,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  57,  58,  -1,  -1,
+       59,  -1,  60,  -1,  -1,  61,  62,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  63,  -1,  -1,  -1,
+       -1,  64,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  65,  -1,  -1,  -1,  -1,  -1,  66,  -1,  67,
+       -1,  -1,  -1,  68,  -1,  -1,  -1,  -1,  69,  70,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  71,  -1,  72,
+       -1,  -1,  73,  -1,  -1,  -1,  -1,  74,  -1,  -1,
+       75,  -1,  76,  -1,  -1,  -1,  77,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  78,  -1,  79,  -1,  -1,
+       80,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  81,
+       -1,  -1,  -1,  -1,  82,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  83,  84,  85,  -1,  -1,  -1,  -1,
+       -1,  86,  87,  -1,  -1,  88,  -1,  -1,  -1,  -1,
+       -1,  -1,  89,  -1,  -1,  -1,  -1,  90,  -1,  -1,
+       -1,  91,  -1,  -1,  -1,  92,  93,  -1,  -1,  -1,
+       94,  -1,  -1,  -1,  -1,  -1,  -1,  95,  -1,  96,
+       -1,  97,  -1,  98,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  99, 100,  -1,  -1, 101,  -1,  -1,  -1,  -1,
+       -1, 102,  -1,  -1,  -1,  -1,  -1,  -1, 103,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      105,  -1,  -1,  -1,  -1,  -1, 106,  -1,  -1, 107,
+       -1,  -1,  -1,  -1, 108,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1, 109,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 111,
-       -1,  -1, 112,  -1,  -1,  -1,  -1,  -1,  -1, 113,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 114,  -1,  -1,
+       -1,  -1,  -1,  -1, 110,  -1, 111,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 112,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 113,  -1,  -1,  -1,
+       -1, 114,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      115,  -1,  -1,  -1,  -1,  -1,  -1, 116,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 117, 118,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 119,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 115, 116,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 117,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 120,  -1,  -1,  -1,
+       -1,  -1,  -1, 121,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 122,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1, 118,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 119,  -1,  -1,  -1,
-       -1, 120,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 121,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 122,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1, 123,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 124,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 125,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 124,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 125,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 126,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 126,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1, 127,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1, 128
+       -1,  -1,  -1,  -1,  -1,  -1, 128,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 129
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -471,6 +491,7 @@ static const char * const propertyList[] = {
 "opacity", 
 "orphans", 
 "outline-color", 
+"outline-offset", 
 "outline-style", 
 "outline-width", 
 "overflow", 
diff --git a/WebCore/khtml/css/cssproperties.h b/WebCore/khtml/css/cssproperties.h
index 15d624d..d735be5 100644
--- a/WebCore/khtml/css/cssproperties.h
+++ b/WebCore/khtml/css/cssproperties.h
@@ -83,61 +83,62 @@
 #define CSS_PROP_OPACITY 74
 #define CSS_PROP_ORPHANS 75
 #define CSS_PROP_OUTLINE_COLOR 76
-#define CSS_PROP_OUTLINE_STYLE 77
-#define CSS_PROP_OUTLINE_WIDTH 78
-#define CSS_PROP_OVERFLOW 79
-#define CSS_PROP_PADDING_TOP 80
-#define CSS_PROP_PADDING_RIGHT 81
-#define CSS_PROP_PADDING_BOTTOM 82
-#define CSS_PROP_PADDING_LEFT 83
-#define CSS_PROP_PAGE 84
-#define CSS_PROP_PAGE_BREAK_AFTER 85
-#define CSS_PROP_PAGE_BREAK_BEFORE 86
-#define CSS_PROP_PAGE_BREAK_INSIDE 87
-#define CSS_PROP_POSITION 88
-#define CSS_PROP_QUOTES 89
-#define CSS_PROP_RIGHT 90
-#define CSS_PROP_SIZE 91
-#define CSS_PROP_TABLE_LAYOUT 92
-#define CSS_PROP_TEXT_ALIGN 93
-#define CSS_PROP_TEXT_DECORATION 94
-#define CSS_PROP_TEXT_DECORATION_COLOR 95
-#define CSS_PROP_TEXT_INDENT 96
-#define CSS_PROP_TEXT_SHADOW 97
-#define CSS_PROP_TEXT_TRANSFORM 98
-#define CSS_PROP_TOP 99
-#define CSS_PROP_UNICODE_BIDI 100
-#define CSS_PROP_VERTICAL_ALIGN 101
-#define CSS_PROP_VISIBILITY 102
-#define CSS_PROP_WHITE_SPACE 103
-#define CSS_PROP_WIDOWS 104
-#define CSS_PROP_WIDTH 105
-#define CSS_PROP_WORD_SPACING 106
-#define CSS_PROP_Z_INDEX 107
-#define CSS_PROP_BACKGROUND 108
-#define CSS_PROP_BORDER 109
-#define CSS_PROP_BORDER_COLOR 110
-#define CSS_PROP_BORDER_STYLE 111
-#define CSS_PROP_BORDER_TOP 112
-#define CSS_PROP_BORDER_RIGHT 113
-#define CSS_PROP_BORDER_BOTTOM 114
-#define CSS_PROP_BORDER_LEFT 115
-#define CSS_PROP_BORDER_WIDTH 116
-#define CSS_PROP_FONT 117
-#define CSS_PROP_LIST_STYLE 118
-#define CSS_PROP_MARGIN 119
-#define CSS_PROP_OUTLINE 120
-#define CSS_PROP_PADDING 121
-#define CSS_PROP_SCROLLBAR_FACE_COLOR 122
-#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 123
-#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 124
-#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 125
-#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 126
-#define CSS_PROP_SCROLLBAR_TRACK_COLOR 127
-#define CSS_PROP_SCROLLBAR_ARROW_COLOR 128
-#define CSS_PROP__KHTML_FLOW_MODE 129
+#define CSS_PROP_OUTLINE_OFFSET 77
+#define CSS_PROP_OUTLINE_STYLE 78
+#define CSS_PROP_OUTLINE_WIDTH 79
+#define CSS_PROP_OVERFLOW 80
+#define CSS_PROP_PADDING_TOP 81
+#define CSS_PROP_PADDING_RIGHT 82
+#define CSS_PROP_PADDING_BOTTOM 83
+#define CSS_PROP_PADDING_LEFT 84
+#define CSS_PROP_PAGE 85
+#define CSS_PROP_PAGE_BREAK_AFTER 86
+#define CSS_PROP_PAGE_BREAK_BEFORE 87
+#define CSS_PROP_PAGE_BREAK_INSIDE 88
+#define CSS_PROP_POSITION 89
+#define CSS_PROP_QUOTES 90
+#define CSS_PROP_RIGHT 91
+#define CSS_PROP_SIZE 92
+#define CSS_PROP_TABLE_LAYOUT 93
+#define CSS_PROP_TEXT_ALIGN 94
+#define CSS_PROP_TEXT_DECORATION 95
+#define CSS_PROP_TEXT_DECORATION_COLOR 96
+#define CSS_PROP_TEXT_INDENT 97
+#define CSS_PROP_TEXT_SHADOW 98
+#define CSS_PROP_TEXT_TRANSFORM 99
+#define CSS_PROP_TOP 100
+#define CSS_PROP_UNICODE_BIDI 101
+#define CSS_PROP_VERTICAL_ALIGN 102
+#define CSS_PROP_VISIBILITY 103
+#define CSS_PROP_WHITE_SPACE 104
+#define CSS_PROP_WIDOWS 105
+#define CSS_PROP_WIDTH 106
+#define CSS_PROP_WORD_SPACING 107
+#define CSS_PROP_Z_INDEX 108
+#define CSS_PROP_BACKGROUND 109
+#define CSS_PROP_BORDER 110
+#define CSS_PROP_BORDER_COLOR 111
+#define CSS_PROP_BORDER_STYLE 112
+#define CSS_PROP_BORDER_TOP 113
+#define CSS_PROP_BORDER_RIGHT 114
+#define CSS_PROP_BORDER_BOTTOM 115
+#define CSS_PROP_BORDER_LEFT 116
+#define CSS_PROP_BORDER_WIDTH 117
+#define CSS_PROP_FONT 118
+#define CSS_PROP_LIST_STYLE 119
+#define CSS_PROP_MARGIN 120
+#define CSS_PROP_OUTLINE 121
+#define CSS_PROP_PADDING 122
+#define CSS_PROP_SCROLLBAR_FACE_COLOR 123
+#define CSS_PROP_SCROLLBAR_SHADOW_COLOR 124
+#define CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR 125
+#define CSS_PROP_SCROLLBAR_3DLIGHT_COLOR 126
+#define CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR 127
+#define CSS_PROP_SCROLLBAR_TRACK_COLOR 128
+#define CSS_PROP_SCROLLBAR_ARROW_COLOR 129
+#define CSS_PROP__KHTML_FLOW_MODE 130
 
 #define CSS_PROP_MAX CSS_PROP_Z_INDEX
-#define CSS_PROP_TOTAL 130
+#define CSS_PROP_TOTAL 131
 #endif
 
diff --git a/WebCore/khtml/css/cssproperties.in b/WebCore/khtml/css/cssproperties.in
index d9aa613..50ffcd5 100644
--- a/WebCore/khtml/css/cssproperties.in
+++ b/WebCore/khtml/css/cssproperties.in
@@ -94,6 +94,7 @@ min-width
 opacity
 orphans
 outline-color
+outline-offset
 outline-style
 outline-width
 overflow
diff --git a/WebCore/khtml/css/cssstyleselector.cpp b/WebCore/khtml/css/cssstyleselector.cpp
index 4e5ca99..815a6dd 100644
--- a/WebCore/khtml/css/cssstyleselector.cpp
+++ b/WebCore/khtml/css/cssstyleselector.cpp
@@ -3315,6 +3315,20 @@ void CSSStyleSelector::applyRule( int id, DOM::CSSValueImpl *value )
         break;
 
     // CSS3 Properties
+    case CSS_PROP_OUTLINE_OFFSET: {
+        if (value->cssValueType() == CSSValue::CSS_INHERIT) {
+            if (!parentNode) return;
+            style->setOutlineOffset(parentStyle->outlineOffset());
+            return;
+        }
+        
+        int offset = primitiveValue->computeLength(style, paintDeviceMetrics);
+        if (offset < 0) return;
+        
+        style->setOutlineOffset(offset);
+        break;
+    }
+
     case CSS_PROP_TEXT_SHADOW: {
         if (value->cssValueType() == CSSValue::CSS_INHERIT) {
             if (!parentNode) return;
diff --git a/WebCore/khtml/html/html_formimpl.cpp b/WebCore/khtml/html/html_formimpl.cpp
index 4244113..7e27188 100644
--- a/WebCore/khtml/html/html_formimpl.cpp
+++ b/WebCore/khtml/html/html_formimpl.cpp
@@ -822,20 +822,26 @@ bool HTMLGenericFormElementImpl::isFocusable() const
 
 bool HTMLGenericFormElementImpl::isKeyboardFocusable() const
 {
-    if (isFocusable() && m_render->isWidget()) {
-        return static_cast<RenderWidget*>(m_render)->widget() &&
-        ((static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::TabFocus) ||
-         (static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::StrongFocus));
+    if (isFocusable()) {
+        if (m_render->isWidget()) {
+            return static_cast<RenderWidget*>(m_render)->widget() &&
+            ((static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::TabFocus) ||
+             (static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::StrongFocus));
+        }
+        return true;
     }
     return false;
 }
 
 bool HTMLGenericFormElementImpl::isMouseFocusable() const
 {
-    if (isFocusable() && m_render->isWidget()) {
-        return static_cast<RenderWidget*>(m_render)->widget() &&
-        ((static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::ClickFocus) ||
-         (static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::StrongFocus));
+    if (isFocusable()) {
+        if (m_render->isWidget()) {
+            return static_cast<RenderWidget*>(m_render)->widget() &&
+            ((static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::ClickFocus) ||
+             (static_cast<RenderWidget*>(m_render)->widget()->focusPolicy() == QWidget::StrongFocus));
+        }
+        return true;
     }
     return false;
 }
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index fee3ddd..a66b90e 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -580,7 +580,7 @@ void RenderBox::position(InlineBox* box, int from, int len, bool reverse)
 
 QRect RenderBox::getAbsoluteRepaintRect()
 {
-    int ow = style() ? style()->outlineWidth() : 0;
+    int ow = style() ? style()->outlineSize() : 0;
     QRect r(-ow, -ow, overflowWidth(false)+ow*2, overflowHeight(false)+ow*2);
     computeAbsoluteRepaintRect(r);
     return r;
@@ -611,7 +611,7 @@ void RenderBox::computeAbsoluteRepaintRect(QRect& r, bool f)
         // <body> may not have a layer, since it might be applying its overflow value to the
         // scrollbars.
         if (o->style()->hidesOverflow() && o->layer()) {
-            int ow = o->style() ? o->style()->outlineWidth() : 0;
+            int ow = o->style() ? o->style()->outlineSize() : 0;
             QRect boxRect(-ow, -ow, o->width()+ow*2, o->height()+ow*2);
             o->layer()->subtractScrollOffset(x,y); // For overflow:auto/scroll/hidden.
             QRect repaintRect(x, y, r.width(), r.height());
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 58b0ecd..8821868 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -239,7 +239,7 @@ QRect RenderFlow::getAbsoluteRepaintRect()
                 left = curr->xPos();
 
         // Now invalidate a rectangle.
-        int ow = style() ? style()->outlineWidth() : 0;
+        int ow = style() ? style()->outlineSize() : 0;
         if (isCompact())
             left -= m_x;
 #ifdef INCREMENTAL_REPAINTING
@@ -249,14 +249,7 @@ QRect RenderFlow::getAbsoluteRepaintRect()
         if (style()->position() == RELATIVE)
             relativePositionOffset(left, top);
 #endif
-        int eow = ow;
-#ifdef APPLE_CHANGES
-        // Fudge a little to make sure we don't leave artifacts.
-        // We need to do better at this.
-        if (ow && style()->outlineStyle() == APPLEAQUA)
-            eow += 2;
-#endif
-        QRect r(-eow+left, -eow+top, width()+eow*2, height()+eow*2);
+        QRect r(-ow+left, -ow+top, width()+ow*2, height()+ow*2);
         containingBlock()->computeAbsoluteRepaintRect(r);
         if (ow) {
             for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
@@ -276,7 +269,7 @@ QRect RenderFlow::getAbsoluteRepaintRect()
     }
     else {
         if (firstLineBox() && firstLineBox()->topOverflow() < 0) {
-            int ow = style() ? style()->outlineWidth() : 0;
+            int ow = style() ? style()->outlineSize() : 0;
             QRect r(-ow, -ow+firstLineBox()->topOverflow(),
                     overflowWidth(false)+ow*2,
                     overflowHeight(false)+ow*2-firstLineBox()->topOverflow());
diff --git a/WebCore/khtml/rendering/render_inline.cpp b/WebCore/khtml/rendering/render_inline.cpp
index a2d63b2..2848518 100644
--- a/WebCore/khtml/rendering/render_inline.cpp
+++ b/WebCore/khtml/rendering/render_inline.cpp
@@ -331,12 +331,12 @@ void RenderInline::paintFocusRing(QPainter *p, int tx, int ty)
     int ow = style()->outlineWidth();
     if (ow == 0 || m_isContinuation) // Continuations get painted by the original inline.
         return;
-    
+
     QColor oc = style()->outlineColor();
     if (!oc.isValid())
         oc = style()->color();
 
-    p->initFocusRing(ow, oc);
+    p->initFocusRing(ow,  style()->outlineOffset(), oc);
     addFocusRingRects(p, tx, ty);
     p->drawFocusRing();
     p->clearFocusRing();
@@ -345,6 +345,9 @@ void RenderInline::paintFocusRing(QPainter *p, int tx, int ty)
 
 void RenderInline::paintOutlines(QPainter *p, int _tx, int _ty)
 {
+    if (style()->outlineWidth() == 0 || style()->outlineStyle() <= BHIDDEN)
+        return;
+    
     QPtrList <QRect> rects;
     rects.setAutoDelete(true);
 
@@ -369,10 +372,12 @@ void RenderInline::paintOutline(QPainter *p, int tx, int ty, const QRect &lastli
     if (!oc.isValid())
         oc = style()->color();
     
-    int t = ty + thisline.top();
-    int l = tx + thisline.left();
-    int b = ty + thisline.bottom() + 1;
-    int r = tx + thisline.right() + 1;
+    int offset = style()->outlineOffset();
+    
+    int t = ty + thisline.top() - offset;
+    int l = tx + thisline.left() - offset;
+    int b = ty + thisline.bottom() + offset + 1;
+    int r = tx + thisline.right() + offset + 1;
     
     // left edge
     drawBorder(p,
diff --git a/WebCore/khtml/rendering/render_object.cpp b/WebCore/khtml/rendering/render_object.cpp
index 5ae6499..8961887 100644
--- a/WebCore/khtml/rendering/render_object.cpp
+++ b/WebCore/khtml/rendering/render_object.cpp
@@ -923,13 +923,18 @@ void RenderObject::paintOutline(QPainter *p, int _tx, int _ty, int w, int h, con
     if(!ow) return;
 
     EBorderStyle os = style->outlineStyle();
+    if (os <= BHIDDEN)
+        return;
+    
     QColor oc = style->outlineColor();
     if (!oc.isValid())
         oc = style->color();
     
+    int offset = style->outlineOffset();
+    
 #ifdef APPLE_CHANGES
     if (os == APPLEAQUA) {
-        p->initFocusRing(ow, oc);
+        p->initFocusRing(ow, offset, oc);
         addFocusRingRects(p, _tx, _ty);
         p->drawFocusRing();
         p->clearFocusRing();
@@ -937,6 +942,11 @@ void RenderObject::paintOutline(QPainter *p, int _tx, int _ty, int w, int h, con
     }
 #endif
 
+    _tx -= offset;
+    _ty -= offset;
+    w += 2*offset;
+    h += 2*offset;
+    
     drawBorder(p, _tx-ow, _ty-ow, _tx, _ty+h+ow, BSLeft,
 	       QColor(oc), style->color(),
                os, ow, ow, true);
@@ -1040,15 +1050,8 @@ void RenderObject::repaintObjectsBeforeLayout()
 
 QRect RenderObject::getAbsoluteRepaintRectWithOutline(int ow)
 {
-    int eow = ow;
-#if APPLE_CHANGES
-    // Fudge a little to make sure we don't leave artifacts.
-    // We need to do better at this.
-    if (style()->outlineStyle() == APPLEAQUA)
-        eow += 2;
-#endif
     QRect r(getAbsoluteRepaintRect());
-    r.setRect(r.x()-eow, r.y()-eow, r.width()+eow*2, r.height()+eow*2);
+    r.setRect(r.x()-ow, r.y()-ow, r.width()+ow*2, r.height()+ow*2);
 
     if (continuation() && !isInline())
         r.setRect(r.x(), r.y()-collapsedMarginTop(), r.width(), r.height()+collapsedMarginTop()+collapsedMarginBottom());
diff --git a/WebCore/khtml/rendering/render_style.h b/WebCore/khtml/rendering/render_style.h
index 84a1724..2b70095 100644
--- a/WebCore/khtml/rendering/render_style.h
+++ b/WebCore/khtml/rendering/render_style.h
@@ -225,6 +225,17 @@ public:
 
 };
 
+class OutlineValue : public BorderValue
+{
+public:
+    OutlineValue()
+    {
+        offset = 0;
+    }
+    
+    int offset;
+};
+
 enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
 
 struct CollapsedBorderValue
@@ -403,7 +414,7 @@ public:
 
     Length x_position;
     Length y_position;
-    BorderValue outline;
+    OutlineValue outline;
 };
 
 //------------------------------------------------
@@ -902,8 +913,8 @@ public:
     const QColor &  	    borderBottomColor() const {  return surround->border.bottom.color; }
     bool borderBottomIsTransparent() const { return surround->border.bottom.isTransparent(); }
     
-    unsigned short  outlineWidth() const
-    { if(background->outline.style == BNONE) return 0; return background->outline.width; }
+    unsigned short outlineSize() const { return outlineWidth() + outlineOffset(); }
+    unsigned short outlineWidth() const { if (background->outline.style == BNONE) return 0; return background->outline.width; }
     EBorderStyle    outlineStyle() const {  return background->outline.style; }
     const QColor &  	    outlineColor() const {  return background->outline.color; }
 
@@ -991,6 +1002,9 @@ public:
     EPageBreak pageBreakAfter() const { return noninherited_flags._page_break_after; }
     
     // CSS3 Getter Methods
+    int outlineOffset() const { 
+        if (background->outline.style == BNONE) return 0; return background->outline.offset;
+    }
     ShadowData* textShadow() const { return css3InheritedData->textShadow; }
     float opacity() { return css3NonInheritedData->opacity; }
     EBoxAlignment boxAlign() { return css3NonInheritedData->flexibleBox->align; }
@@ -1159,6 +1173,7 @@ public:
     void setPageBreakAfter(EPageBreak b) { noninherited_flags._page_break_after = b; }
     
     // CSS3 Setters
+    void setOutlineOffset(unsigned short v) {  SET_VAR(background,outline.offset,v) }
     void setTextShadow(ShadowData* val, bool add=false);
     void setOpacity(float f) { SET_VAR(css3NonInheritedData, opacity, f); }
     void setBoxAlign(EBoxAlignment a) { SET_VAR(css3NonInheritedData.access()->flexibleBox, align, a); }
diff --git a/WebCore/khtml/rendering/render_text.cpp b/WebCore/khtml/rendering/render_text.cpp
index 8f6cbe7..a8db26b 100644
--- a/WebCore/khtml/rendering/render_text.cpp
+++ b/WebCore/khtml/rendering/render_text.cpp
@@ -556,7 +556,6 @@ correctedTextColor(QColor textColor, QColor backgroundColor)
 void RenderText::paintObject(QPainter *p, int /*x*/, int y, int /*w*/, int h,
                              int tx, int ty, PaintAction paintAction)
 {
-    int ow = style()->outlineWidth();
     RenderStyle* pseudoStyle = style(true);
     if (pseudoStyle == style()) pseudoStyle = 0;
     int d = style()->textDecorationsInEffect();
@@ -773,7 +772,7 @@ void RenderText::paintObject(QPainter *p, int /*x*/, int y, int /*w*/, int h,
             }
 #endif
 
-        } while (++si < (int)m_lines.count() && m_lines[si]->checkVerticalPoint(y-ow, ty, h));
+        } while (++si < (int)m_lines.count() && m_lines[si]->checkVerticalPoint(y, ty, h));
 
 #if APPLE_CHANGES
         } // end of for loop
diff --git a/WebCore/kwq/KWQPainter.h b/WebCore/kwq/KWQPainter.h
index f02434d..dda805f 100644
--- a/WebCore/kwq/KWQPainter.h
+++ b/WebCore/kwq/KWQPainter.h
@@ -114,8 +114,8 @@ public:
     void setShadow(int x, int y, int blur, const QColor& color);
     void clearShadow();
 
-    void initFocusRing(int width);
-    void initFocusRing(int width, const QColor &);
+    void initFocusRing(int width, int offset);
+    void initFocusRing(int width, int offset, const QColor& color);
     void addFocusRingRect(int x, int y, int width, int height);
     void drawFocusRing();
     void clearFocusRing();
diff --git a/WebCore/kwq/KWQPainter.mm b/WebCore/kwq/KWQPainter.mm
index 2edfb5d..32cebc8 100644
--- a/WebCore/kwq/KWQPainter.mm
+++ b/WebCore/kwq/KWQPainter.mm
@@ -54,7 +54,8 @@ struct QPState {
 };
 
 struct QPainterPrivate {
-    QPainterPrivate() : textRenderer(0), focusRingPath(0), focusRingWidth(0), hasFocusRingColor(false) { }
+    QPainterPrivate() : textRenderer(0), focusRingPath(0), focusRingWidth(0), focusRingOffset(0),
+                        hasFocusRingColor(false) { }
     ~QPainterPrivate() { [textRenderer release]; [focusRingPath release]; }
     QPState state;
     QPtrStack<QPState> stack;
@@ -62,6 +63,7 @@ struct QPainterPrivate {
     QFont textRendererFont;
     NSBezierPath *focusRingPath;
     int focusRingWidth;
+    int focusRingOffset;
     bool hasFocusRingColor;
     QColor focusRingColor;
 };
@@ -674,18 +676,19 @@ void QPainter::clearShadow()
     CGContextSetShadowWithColor(context, CGSizeZero, 0, NULL);
 }
 
-void QPainter::initFocusRing(int width)
+void QPainter::initFocusRing(int width, int offset)
 {
     clearFocusRing();
     data->focusRingWidth = width;
     data->hasFocusRingColor = false;
+    data->focusRingOffset = offset;
     data->focusRingPath = [[NSBezierPath alloc] init];
     [data->focusRingPath setWindingRule:NSNonZeroWindingRule];
 }
 
-void QPainter::initFocusRing(int width, const QColor &color)
+void QPainter::initFocusRing(int width, int offset, const QColor &color)
 {
-    initFocusRing(width);
+    initFocusRing(width, offset);
     data->hasFocusRingColor = true;
     data->focusRingColor = color;
 }
@@ -694,7 +697,7 @@ void QPainter::addFocusRingRect(int x, int y, int width, int height)
 {
     ASSERT(data->focusRingPath);
     NSRect rect = NSMakeRect(x, y, width, height);
-    int offset = (data->focusRingWidth >> 1);
+    int offset = (data->focusRingWidth-1)/2 + data->focusRingOffset;
     rect = NSInsetRect(rect, -offset, -offset);
     [data->focusRingPath appendBezierPathWithRect:rect];
 }
@@ -707,7 +710,7 @@ void QPainter::drawFocusRing()
 
     NSRect bounds = [data->focusRingPath bounds];
     if (!NSIsEmptyRect(bounds)) {
-        int radius = (data->focusRingWidth >> 1);
+        int radius = (data->focusRingWidth-1)/2;
         NSColor *color = data->hasFocusRingColor ? data->focusRingColor.getNSColor() : nil;
         [NSGraphicsContext saveGraphicsState];
         [[WebCoreGraphicsBridge sharedBridge] setFocusRingStyle:NSFocusRingOnly radius:radius color:color];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list