From 8810d07b27b2251f9d2d306a2d9ddb4aabe1dcfd Mon Sep 17 00:00:00 2001 From: aroben Date: Wed, 20 Sep 2006 17:42:48 +0000 Subject: [PATCH] WebCore: Reviewed by Adele. Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=10935 REGRESSION: file upload control with direction:rtl or text-align:right draws button on top of filename/icon * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::setStyle): Force text-align to match direction (WebCore::RenderFileUploadControl::paintObject): Fix positioning of the filename and icon in RTL LayoutTests: Reviewed by Adele. Adding test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10935 REGRESSION: file upload control with direction:rtl or text-align:right draws button on top of filename/icon * fast/forms/file-input-direction-expected.checksum: Added. * fast/forms/file-input-direction-expected.png: Added. * fast/forms/file-input-direction-expected.txt: Added. * fast/forms/file-input-direction.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16472 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 13 +++ .../file-input-direction-expected.checksum | 1 + .../forms/file-input-direction-expected.png | Bin 0 -> 22432 bytes .../forms/file-input-direction-expected.txt | 101 ++++++++++++++++++ .../fast/forms/file-input-direction.html | 35 ++++++ WebCore/ChangeLog | 14 +++ WebCore/rendering/RenderFileUploadControl.cpp | 10 +- 7 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 LayoutTests/fast/forms/file-input-direction-expected.checksum create mode 100644 LayoutTests/fast/forms/file-input-direction-expected.png create mode 100644 LayoutTests/fast/forms/file-input-direction-expected.txt create mode 100644 LayoutTests/fast/forms/file-input-direction.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index b98770b43e4e..6440ee3bc285 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,16 @@ +2006-09-20 Adam Roben + + Reviewed by Adele. + + Adding test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10935 + REGRESSION: file upload control with direction:rtl or text-align:right + draws button on top of filename/icon + + * fast/forms/file-input-direction-expected.checksum: Added. + * fast/forms/file-input-direction-expected.png: Added. + * fast/forms/file-input-direction-expected.txt: Added. + * fast/forms/file-input-direction.html: Added. + 2006-09-20 Eric Seidel Reviewed by hyatt. diff --git a/LayoutTests/fast/forms/file-input-direction-expected.checksum b/LayoutTests/fast/forms/file-input-direction-expected.checksum new file mode 100644 index 000000000000..4b2d4eba4430 --- /dev/null +++ b/LayoutTests/fast/forms/file-input-direction-expected.checksum @@ -0,0 +1 @@ +04a2da1e07f3955baf774bb0af4db14b \ No newline at end of file diff --git a/LayoutTests/fast/forms/file-input-direction-expected.png b/LayoutTests/fast/forms/file-input-direction-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9421f470d1b43105b36acaf35f327bbb5ac6ed GIT binary patch literal 22432 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 literal 0 HcmV?d00001 diff --git a/LayoutTests/fast/forms/file-input-direction-expected.txt b/LayoutTests/fast/forms/file-input-direction-expected.txt new file mode 100644 index 000000000000..d23eb6a81030 --- /dev/null +++ b/LayoutTests/fast/forms/file-input-direction-expected.txt @@ -0,0 +1,101 @@ +layer at (0,0) size 1083x585 + RenderView at (0,0) size 800x585 +layer at (0,0) size 1083x585 + RenderBlock {HTML} at (0,0) size 800x585 + RenderBody {BODY} at (8,8) size 784x569 + RenderTable {TABLE} at (0,0) size 1075x108 + RenderTableSection {TBODY} at (0,0) size 1075x108 + RenderTableRow {TR} at (0,2) size 1075x20 + RenderTableCell {TH} at (2,11) size 83x2 [r=0 c=0 rs=1 cs=1] + RenderTableCell {TH} at (87,11) size 245x2 [r=0 c=1 rs=1 cs=1] + RenderTableCell {TH} at (334,2) size 245x20 [r=0 c=2 rs=1 cs=1] + RenderText {#text} at (78,1) size 89x18 + text run at (78,1) width 89: "text-align:left" + RenderTableCell {TH} at (581,2) size 245x20 [r=0 c=3 rs=1 cs=1] + RenderText {#text} at (67,1) size 110x18 + text run at (67,1) width 110: "text-align:center" + RenderTableCell {TH} at (828,2) size 245x20 [r=0 c=4 rs=1 cs=1] + RenderText {#text} at (72,1) size 101x18 + text run at (72,1) width 101: "text-align:right" + RenderTableRow {TR} at (0,24) size 1075x26 + RenderTableCell {TH} at (2,36) size 83x2 [r=1 c=0 rs=1 cs=1] + RenderTableCell {TD} at (87,24) size 245x26 [border: (1px solid #000000)] [r=1 c=1 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (334,24) size 245x26 [border: (1px solid #000000)] [r=1 c=2 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (581,24) size 245x26 [border: (1px solid #000000)] [r=1 c=3 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (828,24) size 245x26 [border: (1px solid #000000)] [r=1 c=4 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableRow {TR} at (0,52) size 1075x26 + RenderTableCell {TH} at (2,55) size 83x20 [r=2 c=0 rs=1 cs=1] + RenderText {#text} at (1,1) size 81x18 + text run at (1,1) width 81: "direction:ltr" + RenderTableCell {TD} at (87,52) size 245x26 [border: (1px solid #000000)] [r=2 c=1 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (334,52) size 245x26 [border: (1px solid #000000)] [r=2 c=2 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (581,52) size 245x26 [border: (1px solid #000000)] [r=2 c=3 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (828,52) size 245x26 [border: (1px solid #000000)] [r=2 c=4 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (0,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableRow {TR} at (0,80) size 1075x26 + RenderTableCell {TH} at (2,83) size 83x20 [r=3 c=0 rs=1 cs=1] + RenderText {#text} at (1,1) size 81x18 + text run at (1,1) width 81: "direction:rtl" + RenderTableCell {TD} at (87,80) size 245x26 [border: (1px solid #000000)] [r=3 c=1 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (159,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (334,80) size 245x26 [border: (1px solid #000000)] [r=3 c=2 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (159,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (581,80) size 245x26 [border: (1px solid #000000)] [r=3 c=3 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (159,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" + RenderTableCell {TD} at (828,80) size 245x26 [border: (1px solid #000000)] [r=3 c=4 rs=1 cs=1] + RenderFileUploadControl {INPUT} at (4,4) size 237x18 + RenderButton {INPUT} at (159,0) size 78x18 [bgcolor=#C0C0C0] + RenderBlock (anonymous) at (8,2) size 62x13 + RenderText at (0,0) size 62x13 + text run at (0,0) width 62: "Choose File" diff --git a/LayoutTests/fast/forms/file-input-direction.html b/LayoutTests/fast/forms/file-input-direction.html new file mode 100644 index 000000000000..5b6df856cd7f --- /dev/null +++ b/LayoutTests/fast/forms/file-input-direction.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
text-align:lefttext-align:centertext-align:right
direction:ltr
direction:rtl
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index 984216a4c547..ac736b76cd5b 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,17 @@ +2006-09-20 Adam Roben + + Reviewed by Adele. + + Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=10935 + REGRESSION: file upload control with direction:rtl or text-align:right + draws button on top of filename/icon + + * rendering/RenderFileUploadControl.cpp: + (WebCore::RenderFileUploadControl::setStyle): Force text-align to + match direction + (WebCore::RenderFileUploadControl::paintObject): Fix positioning of + the filename and icon in RTL + 2006-09-20 Alice Liu Reviewed by Adam Roben. diff --git a/WebCore/rendering/RenderFileUploadControl.cpp b/WebCore/rendering/RenderFileUploadControl.cpp index cd2ef584be2e..1e835e6b2ba4 100644 --- a/WebCore/rendering/RenderFileUploadControl.cpp +++ b/WebCore/rendering/RenderFileUploadControl.cpp @@ -80,6 +80,12 @@ RenderFileUploadControl::~RenderFileUploadControl() void RenderFileUploadControl::setStyle(RenderStyle* s) { + // Force text-align to match the direction + if (s->direction() == LTR) + s->setTextAlign(LEFT); + else + s->setTextAlign(RIGHT); + RenderBlock::setStyle(s); if (m_button) m_button->renderer()->setStyle(createButtonStyle(s)); @@ -158,7 +164,7 @@ void RenderFileUploadControl::paintObject(PaintInfo& i, int tx, int ty) if (style()->direction() == LTR) textX = contentLeft + buttonAndIconWidth; else - textX = contentLeft + contentWidth() - buttonAndIconWidth; + textX = contentLeft + contentWidth() - buttonAndIconWidth - style()->font().width(textRun); // We want to match the button's baseline RenderButton* buttonRenderer = static_cast(m_button->renderer()); int textY = buttonRenderer->absoluteBoundingBoxRect().y() + buttonRenderer->marginTop() + buttonRenderer->borderTop() + buttonRenderer->paddingTop() + buttonRenderer->baselinePosition(true, false); @@ -176,7 +182,7 @@ void RenderFileUploadControl::paintObject(PaintInfo& i, int tx, int ty) if (style()->direction() == LTR) iconX = contentLeft + m_button->renderer()->width() + afterButtonSpacing; else - iconX = contentLeft + contentWidth() - m_button->renderer()->width() - afterButtonSpacing; + iconX = contentLeft + contentWidth() - m_button->renderer()->width() - afterButtonSpacing - iconWidth; // Draw the file icon m_fileChooser->icon()->paint(i.p, IntRect(iconX, iconY, iconWidth, iconHeight)); -- 2.36.0