Changeset 25386 in webkit
- Timestamp:
- Sep 6, 2007 5:20:24 AM (17 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r25383 r25386 1 2007-09-06 Mitz Pettel <mitz@webkit.org> 2 3 Reviewed by Adam Roben. 4 5 - fix http://bugs.webkit.org/show_bug.cgi?id=14685 6 <rdar://problem/5349755> text-align affects <select> button but not its drop-down menu 7 8 * platform/PlatformString.h: 9 (WebCore::String::defaultWritingDirection): 10 * platform/StringImpl.cpp: 11 (WebCore::StringImpl::defaultWritingDirection): Moved textDirectionForParagraph() 12 from RenderMenuList.cpp here. 13 * platform/StringImpl.h: 14 * platform/win/PopupMenuWin.cpp: 15 (WebCore::PopupMenu::itemWritingDirectionIsNatural): Changed to return 'true'. 16 (WebCore::PopupMenu::paint): Changed to use natural directionality for menu 17 items. 18 * rendering/RenderMenuList.cpp: 19 (WebCore::RenderMenuList::adjustInnerStyle): Use defaultWritingDirection. 20 1 21 2007-09-06 Maciej Stachowiak <mjs@apple.com> 2 22 -
trunk/WebCore/platform/PlatformString.h
r24730 r25386 186 186 CString latin1() const; 187 187 CString utf8() const; 188 189 // Determines the writing direction using the Unicode Bidi Algorithm rules P2 and P3. 190 WTF::Unicode::Direction defaultWritingDirection() const { return m_impl ? m_impl->defaultWritingDirection() : WTF::Unicode::LeftToRight; } 188 191 189 192 String(const DeprecatedString&); -
trunk/WebCore/platform/StringImpl.cpp
r24158 r25386 1220 1220 } 1221 1221 1222 WTF::Unicode::Direction StringImpl::defaultWritingDirection() const 1223 { 1224 for (unsigned i = 0; i < m_length; ++i) { 1225 WTF::Unicode::Direction charDirection = WTF::Unicode::direction(m_data[i]); 1226 if (charDirection == WTF::Unicode::LeftToRight) 1227 return WTF::Unicode::LeftToRight; 1228 if (charDirection == WTF::Unicode::RightToLeft || charDirection == WTF::Unicode::RightToLeftArabic) 1229 return WTF::Unicode::RightToLeft; 1230 } 1231 return WTF::Unicode::LeftToRight; 1232 } 1233 1222 1234 StringImpl::StringImpl(const Identifier& str) 1223 1235 { -
trunk/WebCore/platform/StringImpl.h
r24158 r25386 138 138 Vector<char> ascii() const; 139 139 140 WTF::Unicode::Direction defaultWritingDirection() const; 141 140 142 #if PLATFORM(CF) 141 143 StringImpl(CFStringRef); -
trunk/WebCore/platform/win/PopupMenuWin.cpp
r24972 r25386 414 414 bool PopupMenu::itemWritingDirectionIsNatural() 415 415 { 416 return false;416 return true; 417 417 } 418 418 … … 492 492 unsigned length = itemText.length(); 493 493 const UChar* string = itemText.characters(); 494 TextStyle textStyle(0, 0, 0, clientStyle->direction() == RTL, clientStyle->unicodeBidi() == Override);494 TextStyle textStyle(0, 0, 0, itemText.defaultWritingDirection() == WTF::Unicode::RightToLeft); 495 495 TextRun textRun(string, length); 496 496 -
trunk/WebCore/rendering/RenderMenuList.cpp
r25322 r25386 77 77 } 78 78 79 // Determines the writing direction using the Unicode Bidi Algorithm rules P2 and P3.80 static TextDirection textDirectionForParagraph(StringImpl* paragraph)81 {82 int length = paragraph->length();83 for (int i = 0; i < length; ++i) {84 WTF::Unicode::Direction charDirection = WTF::Unicode::direction((*paragraph)[i]);85 if (charDirection == WTF::Unicode::LeftToRight)86 return LTR;87 if (charDirection == WTF::Unicode::RightToLeft || charDirection == WTF::Unicode::RightToLeftArabic)88 return RTL;89 }90 return LTR;91 }92 93 79 void RenderMenuList::adjustInnerStyle() 94 80 { … … 104 90 // so we must adjust our own style to match. 105 91 m_innerBlock->style()->setTextAlign(LEFT); 106 TextDirection direction = m_buttonText ? textDirectionForParagraph(m_buttonText->text()): LTR;92 TextDirection direction = (m_buttonText && m_buttonText->text()->defaultWritingDirection() == WTF::Unicode::RightToLeft) ? RTL : LTR; 107 93 m_innerBlock->style()->setDirection(direction); 108 94 }
Note: See TracChangeset
for help on using the changeset viewer.