Issue 58663 - order of glyph substituion different for iculayout vs sallayout
Summary: order of glyph substituion different for iculayout vs sallayout
Status: CLOSED FIXED
Alias: None
Product: gsl
Classification: Code
Component: code (show other issues)
Version: 680m142
Hardware: All Linux, all
: P3 Trivial (vote)
Target Milestone: OOo 2.2
Assignee: stefan.baltzer
QA Contact: issues@gsl
URL:
Keywords:
Depends on:
Blocks: 54603
  Show dependency tree
 
Reported: 2005-11-30 10:40 UTC by caolanm
Modified: 2007-08-27 10:43 UTC (History)
1 user (show)

See Also:
Issue Type: PATCH
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
patch to implement ordering (2.46 KB, patch)
2005-11-30 10:41 UTC, caolanm
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description caolanm 2005-11-30 10:40:37 UTC
(https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=174147)

If the font selected to render some text passes "FT_IS_SFNT" then iculayout is
used for layout, otherwise sallayout is used. 

Now if the font is missing the glyphs to show it, then sallayout inserts the
missing glyphs inside the re-render buffer in their physical order, while
iculayout seems to use visual layout. e.g. the attached example, where Luxi Mono
uses sallayout, and Sazanami Gothic uses iculayout, and neither has the bengali
glyphs required. So for sallayout the order is "9a7 9bf" for fallbacks, and the
other way around for iculayout. 

These are combining characters, so the order for combining is lost on glyph
substitution for the iculayout case. Simple patch attached to address this issue.
Comment 1 caolanm 2005-11-30 10:41:12 UTC
Created attachment 31936 [details]
patch to implement ordering
Comment 2 hdu@apache.org 2005-11-30 14:33:06 UTC
The patch kills glyph fallback for BiDi...

The layout runs are already in visual order (from a BiDi perspective) and the
fallback runs should also be generated in visual order too.

As the problem you linked to shows this concept doesn't work reliably for Indic
scripts, because there reordering within a run is done. The solution that should
work for all scripts is to adjust to fallback runs to their corresponding
original runs.
Comment 3 hdu@apache.org 2005-11-30 14:33:55 UTC
.
Comment 4 hdu@apache.org 2005-12-16 16:00:20 UTC
.
Comment 5 hdu@apache.org 2006-03-14 16:04:07 UTC
ImplLayoutArgs::PrepareFallback() should already do something like what I
suggested above...
Comment 6 hdu@apache.org 2006-06-27 11:51:39 UTC
Fixed in CWS icuupgrade.
Comment 7 ooo 2006-08-11 18:32:46 UTC
Retargeting to 2.1
Comment 8 karl.hong 2006-10-18 02:06:39 UTC
ready for QA.
Comment 9 ooo 2006-10-24 11:27:54 UTC
'mh' decided to postpone integration of CWS 'icuupgrade' to OOo2.2, aligning target.
Comment 10 stefan.baltzer 2006-10-24 17:48:23 UTC
SBA: Verified in CWS icuupgrade.
Comment 11 caolanm 2007-08-27 10:43:55 UTC
closed