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 -~----------~----~----~----~------~----~------~--~---
