[Libreoffice-bugs] [Bug 119961] New: EDITING: Automatic cell alignment in Calc breaks with bidi-neutral characters

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Tue Sep 18 16:55:42 UTC 2018


https://bugs.documentfoundation.org/show_bug.cgi?id=119961

            Bug ID: 119961
           Summary: EDITING: Automatic cell alignment in Calc breaks with
                    bidi-neutral characters
           Product: LibreOffice
           Version: 6.0.3.2 release
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Calc
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: vaaydayaasra at gmail.com

Description:
Calc seems to assign the alignment of any particular text cell based on the
contents of the cell: if the first character is a LTR character, the cell is
aligned to the left, and if the first character is RTL, the cell is aligned to
the right. This is desirable behavior but it breaks when the first character is
neutral, i.e. a character that behaves as RTL in an RTL context and as LTR in a
LTR context.

See the attached screenshot where cell A1 "abc" is automatically aligned to the
left and cell A2 "ابت" to the right. When I surround these strings with
parentheses, which are bidi-neutral characters, in A3 and A4, both are aligned
to the left. For some reason, even font metrics break with this assignment, as
the last character of the Arabic string overlaps visually with the closing
parenthesis (I filed this as a separate issue at
https://bugs.documentfoundation.org/show_bug.cgi?id=119960).

In column C, I have copied the contents of column A but changed the
directionality setting of cell C4 manually to RTL through Format Cells > Text
direction. Here the cell is properly aligned to the right and the closing
parenthesis does not overlap with the last character of the string.

According to the Unicode standard, neutral characters should not affect
directionality, and that’s what I would expect as a user, too. I think the best
solution would be for Calc to skip all neutral characters in the beginning of
the string and just consider the first strong character for cell alignment.
Even better, Calc could use this heuristics to assign full text directionality
for the cell, not just change alignment. Right now, if you start the cell with
an RTL character followed by a LTR inset and then continue with RTL again, the
substrings are ordered as in a LTR context ("FIRST second THIRD"), not as in
true RTL ("THIRD second FIRST").

This bug was first reported for LO 6.0.3.2 on Launchpad at
https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1793126 . Another
user there confirmed the bug on LO 6.0.3.2 and 6.1.1.2.

Steps to Reproduce:
1. In an empty Calc cell with default directionality, write some text in Arabic
enclosed in parentheses.

Actual Results:
The cell is automatically aligned to the left.

Expected Results:
The cell should be aligned to the right, as parentheses are bidi-neutral and
should not affect directionality at all.


Reproducible: Always


User Profile Reset: No



Additional Info:

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20180918/eacb0526/attachment.html>


More information about the Libreoffice-bugs mailing list