Comment #13 on issue 6135 by [email protected]: RTL: Hebrew text with  
diacritical marks rendered with extra spaces in Chrome/Windows.
http://code.google.com/p/chromium/issues/detail?id=6135

I have quickly investigated this issue today.
Even though I cannot tell any solutions now, it seems that the  
WebCore::UniScribeHelper treats the width of a '\n' character (U+000A) as 0  
and Chrome cannot add any space
between the first word and the second one.
When there is a nikkud (U+05BC), Chrome uses the WebCore::UniscribeHelper  
class to split the string in the <p> element into three runs: "U+05E9,  
U+05D5, U+05E8, U+05D4",
"U+000A",  and "U+05D5, U+05E2, U+05D5, U+05D3, U+0020, U+05E9, U+05D5,  
U+05BC, U+05E8, U+05D4". After splitting the string, Chrome calls the  
ScriptTextOut() function for
each run and render them.
Unfortunately, while rendering the second run "U+000A", the  
WebCore::UniscribeHelper::advanceForItem() function returns 0 (as its  
width) to prevent Chrome from adding any
space between the first run and the third run.

When we use ' ' (U+0020) instead of '\n' (U+000A), the  
WebCore::UniscribeHelper class does not split the given string and draw it  
at once.

When we don't include nikkud characters, WebKit does not use the  
WebCore::UniscribeHelper class and this problem does not happen.

Unfortunately I don't have much time today, so I'm going to deeply  
investigate this problem to find its best solutions next week.
If there are good solutions for this problem, please feel free to propose  
me or fix it on my behalf. :)

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs
-~----------~----~----~----~------~----~------~--~---

Reply via email to