Fixed <rdar://problem/
3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
Use mirror characters correctly when rendering with RTL directionality.
Reviewed by Hyatt.
* khtml/rendering/bidi.cpp:
(khtml::BidiIterator::direction):
WebKit
Fixed <rdar://problem/
3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
If directionality is specified use that as initial directionality,
rather than neutral directionality.
Reviewed by Hyatt.
* WebCoreSupport.subproj/WebTextRenderer.m:
(widthForNextCharacter):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8689
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2005-02-24 Richard Williamson <rjw@apple.com>
+
+ Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
+
+ Use mirror characters correctly when rendering with RTL directionality.
+
+ Reviewed by Hyatt.
+
+ * khtml/rendering/bidi.cpp:
+ (khtml::BidiIterator::direction):
+
2005-02-24 Richard Williamson <rjw@apple.com>
Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
RenderText *renderTxt = static_cast<RenderText *>( obj );
if ( pos >= renderTxt->stringLength() )
return QChar::DirON;
+
+ if (obj->style()->direction() == RTL && pos == 0)
+ return QChar::DirR;
+
return renderTxt->text()[pos].direction();
}
+2005-02-24 Richard Williamson <rjw@apple.com>
+
+ Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
+
+ If directionality is specified use that as initial directionality,
+ rather than neutral directionality.
+
+ Reviewed by Hyatt.
+
+ * WebCoreSupport.subproj/WebTextRenderer.m:
+ (widthForNextCharacter):
+
2005-02-24 Adele Amchan <adele@apple.com>
Reviewed by Chris.
{
WebTextRenderer *renderer = iterator->renderer;
const WebCoreTextRun *run = iterator->run;
+ const WebCoreTextStyle *style = iterator->style;
unsigned currentCharacter = iterator->currentCharacter;
NSFont *_fontUsed = nil;
}
}
+ if (style->rtl) {
+ c = u_charMirror(c);
+ }
if (c <= 0xFFFF) {
*glyphUsed = glyphForCharacter(renderer->characterToGlyphMap, c, fontUsed);
if (*glyphUsed == nonGlyphID) {