[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