<div dir="rtl"><div dir="ltr">Per developers request, I will explain Oman HOST team thoughts.<br><br>Current process of laying out text is as follows:<br></div><div dir="ltr"><br></div><div dir="ltr">The
 StoryText class handles characters and glyphs layout. This class stores
 characters in a member with type of ScText_Shared with basically a 
QList of ScText, which (despite its name) stores a single character, its
 styles and associated GlyphLayout. <br>The problem with this is that 
the order of glyphs is tied to the logical order of characters so we can
 not apply the bidi algorithm to support right to left languages as it 
will reorder the text to its visual order. It can not also represent 
many to one characters to glyphs relationship e.g. ligatures.<br><br></div><div dir="ltr">Our Aim:<br><br>Andreas
 proposal is to separate glyph layout from story text which should make 
it possible to avoid above limitations. So, we are moving all functions 
 related to glyph layout to the TextLayout class. This currently 
includes:<br><br>getGlyphs()<br>flags()<br>hasFlag()<br>setFlag()<br>clearFlag()<br><br></div><div dir="ltr">There
 will be a mapping between glyphs in TextLayout and characters in 
StoryTextWhich will remove the  need for ScText so we can drop it 
inertially. This will allow for us to change the visual order of the 
glyphs without affecting the logical order of the characters, which is 
the prerequisite for CTL support i.e. bidi and shaping. <br><br></div><div dir="ltr">We are splitting the project into three stages.<br><br></div><div dir="ltr">1- Separating glyph layout from story text.<br></div><div dir="ltr">2- Refactor or prepare TextLayout class to integrate HarfBuzz and ubidi.<br></div><div dir="ltr">3- Integrate harfbuzz and bidi with scribus.<br></div><div class="gmail_extra"><br></div><div dir="ltr" class="gmail_extra">Any feedback will be highly welcomed.<br></div></div>