Bug 1067788 - Part 5: Fix for parts of test_bug496275.html. r=smontagu

This commit is contained in:
Ted Clancy 2015-05-30 00:22:53 -04:00
parent 2adcb03176
commit 2b988bd872

View File

@ -1018,8 +1018,13 @@ nsFrameSelection::MoveCaret(nsDirection aDirection,
switch (aAmount) {
case eSelectBeginLine:
case eSelectEndLine:
// set the caret Bidi level to the paragraph embedding level
SetCaretBidiLevel(NS_GET_BASE_LEVEL(theFrame));
// In Bidi contexts, PeekOffset calculates pos.mContentOffset
// differently depending on whether the movement is visual or logical.
// For visual movement, pos.mContentOffset depends on the direction-
// ality of the first/last frame on the line (theFrame), and the caret
// directionality must correspond.
SetCaretBidiLevel(visualMovement ? NS_GET_EMBEDDING_LEVEL(theFrame) :
NS_GET_BASE_LEVEL(theFrame));
break;
default: