My favorites | Sign in
Logo
             
New issue | Search
for
| Advanced search | Search tips
Issue 16279: Problems in typing Thai in an input box on Linux Chrome
7 people starred this issue and may be notified of changes. Back to list
 
Reported by suteanfx, Jul 08, 2009
Chrome Version       : 3.0.193.0 (20219)
Other browsers tested:
  Firefox 3.x: OK

What steps will reproduce the problem?
1. type English "google"
2. type Thai    "กูเกิล"  "d^gdb]"
3. move cursor  "กู|เกิล"
4*. type Thai   "กูเกิล" "d^gdb]"
result: "กูเกิลกู|เกิล"
expected: "กูกูเกิล|เกิล"

5*. Backspace 5 times  begin at "กูเกิลกู|เกิล"
result: "กกูเกิล"
expected: "กูเเกิล"
6. move cursor "go|ogle"
7*. backspace 3 times
result: "o|ogle"
expected: "|ogle"
8. 6. and 7. again begin at "og|le"
result: "g|le"
expected: "le"
9*. hit delete "g|le"
result: "le"
expected: "ge"

(*) has problem 
(|) place of cursor
7. 9. not happen if not mix with Thai.

Attach is a vdo screenshot to reproduct this step

chrome-test.ogv
386 KB Download
Comment 1 by nsylvain@chromium.org, Jul 08, 2009
(No comment was entered for this change.)
Cc: hb...@chromium.org
Comment 2 by prog...@chromium.org, Jul 09, 2009
(No comment was entered for this change.)
Cc: xly...@chromium.org
Labels: -OS-All OS-Linux I18N
Comment 3 by xlyuan@chromium.org, Jul 09, 2009
I haven't tried yet, but Hironori fixed a similar  issue 3523  for Windows before.
Cc: js...@chromium.org a...@chromium.org e...@chromium.org est...@chromium.org
Comment 4 by agl@chromium.org, Jul 09, 2009
The bug seems to be that the cursor position is wrong. This is Linux specific. Thanks 
to Markus for guiding me though setting up Thai input.

I'll take a look, but if one of the i18n folks wanted to fix it first, I wouldn't be 
too upset ;)
Status: Available
Owner: a...@chromium.org
Comment 5 by hbono@chromium.org, Jul 10, 2009
agl,

To investigate this issue quickly today, it seems your Font::selectionRectForComplexText() returns a wrong position 
for LTR strings.

604:    if (toX == -1 && !to)
605:        toX = rightEdge;
606:    else if (!walker.rtl())
607:        toX += truncateFixedPointToInteger(toAdvance);

This code adds |toAdvance| to |toX| when the given text is LTR. Even though I'm not totally sure about this code, 
I'm wondering if it is correct to add |toAdvance| to |toX| here for LTR strings. (As far as I tested this function 
with some LTR strings, |toX| becomes the correct value before reaching to this code.)

Since I'm not sure the context of this code, it is better for you to fix this problem. Anyway, I'm happy to help 
you if you need my help.

Regards,
Comment 6 by jshin@chromium.org, Jul 13, 2009
(No comment was entered for this change.)
Labels: -Area-Misc Area-WebKit
Comment 7 by suteanfx, Aug 12, 2009
This problem maybe cause of this case,too.
1. put cursor on "กูเกิล|"
2. drag to select to "|กูเกิล"
3. copy and paste result is "กูเกิ"

it missing the last character 
Comment 8 by agl@chromium.org, Aug 13, 2009
(No comment was entered for this change.)
Status: Started
Comment 9 by agl@chromium.org, Aug 31, 2009
Unassigning from me. The patch is pretty small if anyone cares to land it: 
https://bugs.webkit.org/show_bug.cgi?id=28284
Status: Available
Owner: ---
Comment 10 by evan@chromium.org, Sep 24, 2009
 Issue 22981  has been merged into this issue.
Cc: tony.chromium
Comment 11 by karen@chromium.org, Oct 16, 2009
(No comment was entered for this change.)
Labels: Mstone-X
Comment 12 by suteanfx, Oct 16, 2009
Hello. What is that mean Mstone-X ?
Comment 13 by karen@chromium.org, Oct 19, 2009
It just means this will likely not be fixed in the next few weeks. I am trying to make sure 
we have all the bugs sorted so we can properly allocate them into buckets when we 
organize our milestones. 
Comment 14 by suteanfx, Oct 19, 2009
"not be fixed in the next few weeks" bad news.  T^T. But thank you for your update.
Comment 15 by evan@chromium.org, Oct 22, 2009
(No comment was entered for this change.)
Status: Started
Comment 16 by hbono@chromium.org, Oct 29, 2009
suteanfx,

Sorry for my slow update.
Let me clarify the meaning of "not be fixed in the next few weeks".

Fortunately for you, we (evan and eseidel) have landed a fix for this issue. So, I 
think this issue is "fixed" if you get the latest snapshot of Chromium from our build 
server and use it.

(*1) http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/

On the other hand, we would like to leave this issue open because we are writing an 
automated test for this issue now.

Regards,
Comment 17 by hbono@chromium.org, Oct 29, 2009
(in reply to comment 15),

TextInputController.firstRectForCharacterRange() returns the pixel-level rectangle for the specified character range. So, to use 
this function, we can write a layout test for this issue.
Unfortunately, this function is implemented only by Mac WebKit, i.e. the Chromium test_shell doesn't implement this function. So, 
we need to implement the function for the Chromium test_shell and write a layout test for this issue.

I have filed another WebKit issue to track the status of its layout test: <https://bugs.webkit.org/show_bug.cgi?id=30902>.

Regards,
Comment 18 by suteanfx, Oct 29, 2009
 It fixed! 4.0.229.0 (30549) :)
Comment 19 by evan@chromium.org, Nov 16, 2009
(No comment was entered for this change.)
Status: Fixed
Sign in to add a comment