Bug Hunting Session
Bug 116157 - Unicode BiDi not considered for Impress and Draw Text objects and Calc, e.g. Old Hungarian (10C80 - 10CFF) Rovás script is rendered as LTR in mixed paragraphs
Summary: Unicode BiDi not considered for Impress and Draw Text objects and Calc, e.g. ...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
5.4.0.3 release
Hardware: All All
: medium normal
Assignee: Khaled Hosny
URL:
Whiteboard: target:6.1.0
Keywords:
Depends on:
Blocks: RTL-CTL Font-Rendering
  Show dependency treegraph
 
Reported: 2018-03-03 13:21 UTC by Kovács Viktor
Modified: 2019-02-06 09:39 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments
Old Hungarian font (26.76 KB, application/x-font-ttf)
2018-03-03 13:24 UTC, Kovács Viktor
Details
Screenshot (207.10 KB, image/png)
2018-03-03 13:26 UTC, Kovács Viktor
Details
sample of BiDi issues in Calc (34.82 KB, application/vnd.oasis.opendocument.spreadsheet)
2018-03-08 08:04 UTC, V Stuart Foote
Details
Calc example exported to PDF (121.00 KB, application/pdf)
2018-03-08 08:09 UTC, V Stuart Foote
Details
sample of BiDi issues in Calc (rev setting lang None) (35.42 KB, application/vnd.oasis.opendocument.spreadsheet)
2018-03-08 08:21 UTC, V Stuart Foote
Details
Calc example exported to PDF (rev setting lang None) (121.00 KB, application/pdf)
2018-03-08 08:22 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kovács Viktor 2018-03-03 13:21:50 UTC
Description:
When I type Old-Hungarian text, it appears LTR direction, however it is a RTL codepage, described in UNICODE 8.0 standard. In Writer resolved the problem with bidi algorithm, with language nothing.

Actual Results:  
Appear as LTR text

Expected Results:
𐲠𐳢𐳜𐳂𐳀𐳤𐳯𐳞𐳮𐳉𐳍


Reproducible: Always


User Profile Reset: No



Additional Info:
[Information automatically included from LibreOffice]
Locale: hu
Module: PresentationDocument
[Information guessed from browser]
OS: Linux (All)
OS is 64bit: yes


User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Comment 1 Kovács Viktor 2018-03-03 13:24:36 UTC
Created attachment 140307 [details]
Old Hungarian font

There is a font for testing
Comment 2 Kovács Viktor 2018-03-03 13:26:20 UTC
Created attachment 140308 [details]
Screenshot
Comment 3 V Stuart Foote 2018-03-03 14:57:01 UTC
Confirming on Windows 10 Pro 64-bit en-US with
Version: 6.0.1.1 (x64)
Build ID: 60bfb1526849283ce2491346ed2aa51c465abfe6
CPU threads: 4; OS: Windows 10.0; UI render: GL; 
Locale: en-US (en_US); Calc: CL

Text within Draw text boxes in Impress and Draw does not respond to ICU BiDi.

STR:

1. Install a font with coverage of Old Hungarian (10C80 - 10CFF) in the SMP.
2. Create a blank presentation in a Left-to-Right locale
3. create a new text box
4. type some text and select
5. context menu select Character dialog
6. select the font with Unicode 10C80-10CFF coverage
7. set language -> None
8. copy paste a sample Rovas string "𐲠𐳢𐳜𐳂𐳀𐳤𐳯𐳞𐳮𐳉𐳍"

Result -- Unicode BiDi from ICU libs are not invoked, like happens in Writer, and string is rendered Left-to-Right. Shouldn't Draw/Impress be consistent with the handling in Writer? Can the Draw/Impress Text objects be made so?

Work around, requiring multiple Draw Text boxes for layout, select text and use the context menu Paragraph dialog. Set it to Right-to-Left.  This of course is not optimal, as the RTL Rovas would normally be embedded into LTR paragraphs containing Hungarian.
Comment 4 Commit Notification 2018-03-08 00:02:33 UTC
Khaled Hosny committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=7a683c31e090e5a81debadcef025df9cd61c75f0

tdf#116157: Always apply Unicode Bidi in editeng

It will be available in 6.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 V Stuart Foote 2018-03-08 06:13:10 UTC
On Windows 10 Pro 64-bit en-US with
Version: 6.1.0.0.alpha0+ (x64)
Build ID: 7a683c31e090e5a81debadcef025df9cd61c75f0
CPU threads: 8; OS: Windows 10.0; UI render: GL; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2018-03-08_01:44:18
Locale: en-US (en_US); Calc: CL

Mixed text with strong BiDi like Old Hungarian (10c80 - 10cff) is now behaving in Draw and Impress Text boxes so issue of OP is fixed.

It now also behaves in mixed text strings in a Calc cell where, if embedded in a mixed string, the BiDi triggers. 

But  if a string is entered with just glyphs from a Unicode block,e.g. Old Hungarian, it sometimes does not pick up the BiDi change and is rendered reversed. A <ctrl>+<shift>+F2 or a double click to move focus to the input line will trigger the BiDi in the cell. But on ending edit, the string rendering in the cell reverts.

So not quite right in Calc--but much better there.
Comment 6 V Stuart Foote 2018-03-08 08:04:18 UTC
Created attachment 140459 [details]
sample of BiDi issues in Calc

Calc sheet with Old Hungarian (10c80 - 10cff) BiDi issues in Calc.
Comment 7 V Stuart Foote 2018-03-08 08:09:29 UTC
Created attachment 140460 [details]
Calc example exported to PDF
Comment 8 V Stuart Foote 2018-03-08 08:21:56 UTC
Created attachment 140461 [details]
sample of BiDi issues in Calc (rev setting lang None)
Comment 9 V Stuart Foote 2018-03-08 08:22:39 UTC
Created attachment 140462 [details]
Calc example exported to PDF (rev setting lang None)
Comment 10 Khaled Hosny 2018-03-08 16:56:41 UTC
Please file a new bug for Calc issues.
Comment 11 Kovács Viktor 2018-03-09 17:55:04 UTC
(In reply to Khaled Hosny from comment #10)
> Please file a new bug for Calc issues.

What would you like to ask "please file"?
Comment 12 V Stuart Foote 2018-03-09 19:22:14 UTC
(In reply to Khaled Hosny from comment #10)
> Please file a new bug for Calc issues.

Done => bug 116322