2011-04-26 Ryosuke Niwa <rniwa@webkit.org>
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 16:40:12 +0000 (16:40 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 16:40:12 +0000 (16:40 +0000)
commit3aa79fd49dc21a74ec8e4029dc76df40623153a2
tree3161cfe7fabfaf1d44f7c042940ad9fc9d51d29e
parent5e2d1df8b2f156d74a2a53f96797742b87cd52f7
2011-04-26  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Dan Bernstein.

        [RTL] Arabic/AB - after typing a date, cursors doesn't go back
        https://bugs.webkit.org/show_bug.cgi?id=49111

        Added a test to move left and right within Arabic numerals and Arabic letters.

        We still fail to set the position offset properly when we moving to the left from before B
        to before A in "ABC123" (logical order) in a LTR block where ABC and 123 are Arabic letters
        and numerals respectively. This bug is to be fixed in the followup bugs.

        * editing/selection/move-left-right-expected.txt:
        * editing/selection/move-left-right.html:
2011-04-26  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Dan Bernstein.

        [RTL] Arabic/AB - after typing a date, cursors doesn't go back
        https://bugs.webkit.org/show_bug.cgi?id=49111

        Even when the offset corresponds to a position visually left of the box
        and there aren't any inline boxes on the left, the previous/next position
        may still correspond to some position in the same line.

        The bug was caused by our ignoring such cases. Fixed the bug by comparing
        previous/next position's inline box to the current box. If they match,
        then we stay on the same position because moving to the left visually at
        the left edge should not result in a position on the same line.

        Also fixed a bug that WebKit uses offsets that are not extrema when moved to
        the left edge or to the right edge, and a bug that WebKit could not move to
        the left from 12^3 CBA abc to 123 C^BA abc (there is no offset between 3 and C).

        Test cases are added to editing/selection/move-left-right.html

        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
        (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/editing/selection/move-left-right-expected.txt
LayoutTests/editing/selection/move-left-right.html
Source/WebCore/ChangeLog
Source/WebCore/editing/VisiblePosition.cpp