Changeset 19412 in webkit
- Timestamp:
- Feb 5, 2007 3:07:03 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r19411 r19412 1 2007-02-05 Mitz Pettel <mitz@webkit.org> 2 3 Reviewed by Adele. 4 5 - test for http://bugs.webkit.org/show_bug.cgi?id=11916 6 REGRESSION (SearchField): RTL search fields are mixed up 7 8 * fast/forms/search-rtl-expected.checksum: Added. 9 * fast/forms/search-rtl-expected.png: Added. 10 * fast/forms/search-rtl-expected.txt: Added. 11 * fast/forms/search-rtl.html: Added. 12 1 13 2007-02-05 Mitz Pettel <mitz@webkit.org> 2 14 -
trunk/WebCore/ChangeLog
r19411 r19412 1 2007-02-05 Mitz Pettel <mitz@webkit.org> 2 3 Reviewed by Adele. 4 5 - fix http://bugs.webkit.org/show_bug.cgi?id=11916 6 REGRESSION (SearchField): RTL search fields are mixed up 7 8 Test: fast/forms/search-rtl.html 9 10 * rendering/RenderTextControl.cpp: 11 (WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner 12 block LTR so that the results button will be on the left and the cancel 13 button will be on the right. 14 (WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction 15 property directly from the control so that it won't be masked by the inner 16 block's LTR override. 17 (WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the 18 results and cancel buttons for RTL. 19 (WebCore::RenderTextControl::forwardEvent): Ditto. 20 (WebCore::RenderTextControl::clientPaddingLeft): Ditto. 21 (WebCore::RenderTextControl::clientPaddingRight): Ditto. 22 1 23 2007-02-05 Mitz Pettel <mitz@webkit.org> 2 24 -
trunk/WebCore/rendering/RenderTextControl.cpp
r19336 r19412 116 116 innerBlockStyle->inheritFrom(startStyle); 117 117 innerBlockStyle->setDisplay(BLOCK); 118 innerBlockStyle->setDirection(LTR); 118 119 // We don't want the shadow dom to be editable, so we set this block to read-only in case the input itself is editable. 119 120 innerBlockStyle->setUserModify(READ_ONLY); … … 128 129 129 130 textBlockStyle->inheritFrom(startStyle); 131 // The inner block, if present, always has its direction set to LTR, 132 // so we need to inherit the direction from the element. 133 textBlockStyle->setDirection(style()->direction()); 130 134 textBlockStyle->setUserModify(element->isReadOnlyControl() || element->disabled() ? READ_ONLY : READ_WRITE_PLAINTEXT_ONLY); 131 135 if (m_innerBlock) … … 601 605 IntPoint localPoint = IntPoint(x - tx - m_x, y - ty - m_y); 602 606 if (m_innerBlock) { 603 Node* leftNode;604 Node* rightNode;605 if (style()->direction() == LTR) {606 leftNode = m_resultsButton.get();607 rightNode = m_cancelButton.get();608 } else {609 leftNode = m_cancelButton.get();610 rightNode = m_resultsButton.get();611 }612 613 607 int textLeft = tx + m_x + m_innerBlock->renderer()->xPos() + m_innerText->renderer()->xPos(); 614 608 int textRight = textLeft + m_innerText->renderer()->width(); 615 if ( leftNode&& x < textLeft) {616 result.setInnerNode( leftNode);617 result.setLocalPoint(IntPoint(localPoint.x() - m_innerText->renderer()->xPos() - m_innerBlock->renderer()->xPos() - leftNode->renderer()->xPos(),618 localPoint.y() - m_innerText->renderer()->yPos() - m_innerBlock->renderer()->yPos() - leftNode->renderer()->yPos()));609 if (m_resultsButton && x < textLeft) { 610 result.setInnerNode(m_resultsButton.get()); 611 result.setLocalPoint(IntPoint(localPoint.x() - m_innerText->renderer()->xPos() - m_innerBlock->renderer()->xPos() - m_resultsButton->renderer()->xPos(), 612 localPoint.y() - m_innerText->renderer()->yPos() - m_innerBlock->renderer()->yPos() - m_resultsButton->renderer()->yPos())); 619 613 return true; 620 614 } 621 if ( rightNode&& x > textRight) {622 result.setInnerNode( rightNode);623 result.setLocalPoint(IntPoint(localPoint.x() - m_innerText->renderer()->xPos() - m_innerBlock->renderer()->xPos() - rightNode->renderer()->xPos(),624 localPoint.y() - m_innerText->renderer()->yPos() - m_innerBlock->renderer()->yPos() - rightNode->renderer()->yPos()));615 if (m_cancelButton && x > textRight) { 616 result.setInnerNode(m_cancelButton.get()); 617 result.setLocalPoint(IntPoint(localPoint.x() - m_innerText->renderer()->xPos() - m_innerBlock->renderer()->xPos() - m_cancelButton->renderer()->xPos(), 618 localPoint.y() - m_innerText->renderer()->yPos() - m_innerBlock->renderer()->yPos() - m_cancelButton->renderer()->yPos())); 625 619 return true; 626 620 } … … 744 738 updatePlaceholder(); 745 739 else { 746 EventTargetNode* leftNode; 747 EventTargetNode* rightNode; 748 if (style()->direction() == LTR) { 749 leftNode = m_resultsButton.get(); 750 rightNode = m_cancelButton.get(); 751 } else { 752 leftNode = m_cancelButton.get(); 753 rightNode = m_resultsButton.get(); 754 } 755 if (evt->isMouseEvent() && leftNode && static_cast<MouseEvent*>(evt)->x() < m_innerText->renderer()->absoluteBoundingBoxRect().x()) 756 leftNode->defaultEventHandler(evt); 757 else if (evt->isMouseEvent() && rightNode && static_cast<MouseEvent*>(evt)->x() > m_innerText->renderer()->absoluteBoundingBoxRect().right()) 758 rightNode->defaultEventHandler(evt); 740 if (evt->isMouseEvent() && m_resultsButton && static_cast<MouseEvent*>(evt)->x() < m_innerText->renderer()->absoluteBoundingBoxRect().x()) 741 m_resultsButton->defaultEventHandler(evt); 742 else if (evt->isMouseEvent() && m_cancelButton && static_cast<MouseEvent*>(evt)->x() > m_innerText->renderer()->absoluteBoundingBoxRect().right()) 743 m_cancelButton->defaultEventHandler(evt); 759 744 else 760 745 m_innerText->defaultEventHandler(evt); … … 943 928 int RenderTextControl::clientPaddingLeft() const 944 929 { 945 if (style()->direction() == LTR) 946 return paddingLeft() + m_resultsButton->renderer()->width(); 947 return paddingLeft() + m_cancelButton->renderer()->width(); 930 return paddingLeft() + m_resultsButton->renderer()->width(); 948 931 } 949 932 950 933 int RenderTextControl::clientPaddingRight() const 951 934 { 952 if (style()->direction() == LTR) 953 return paddingRight() + m_cancelButton->renderer()->width(); 954 return paddingRight() + m_resultsButton->renderer()->width(); 935 return paddingRight() + m_cancelButton->renderer()->width(); 955 936 } 956 937
Note: See TracChangeset
for help on using the changeset viewer.