• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: VWR-250
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Simon Linden
Reporter: Alissa Sabre
Votes: 4
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
1. Second Life Viewer - VWR

Preedit (composition) strings are shown poorly when typing Japanese text on Windows

Created: 16/Mar/07 08:20 PM   Updated: 09/Feb/08 05:34 AM
Return to search
Component/s: Internationalization, User Interface
Affects Version/s: First Look: Render Pipeline, 1.18.0, 1.18.1.2, 1.18.2.0, 1.18.4.3, 1.18.5 Release Candidate, 1.18.5.3
Fix Version/s: 1.19.0 Release Candidate

File Attachments: 1. Zip Archive changed-files-20070915.zip (139 kB)
2. Text File IME-20070716.patch (62 kB)
3. Text File ime-20070819.patch (86 kB)
4. Text File ime-20070909.patch (90 kB)
5. Text File ime-20070909.patch (907 kB)
6. Text File ime-20071110.patch (114 kB)
7. Text File IME-20071123a.patch (3 kB)
8. Text File ime-20071124.patch (1 kB)
9. Text File ime-20071201.patch (98 kB)

Environment:
Windows 2000, Windows XP, or Windows Vista
All Viewer versions (:-)
Probably with all IMEs regardless of IMM and TIP: I tested on MS-IME 2000, MS-IME 2002, MS-IME 2007, AtoK 2006, Japanist 2002
Issue Links:
Relates
 

Linden Lab Issue ID: SL-42133
Patch attached: Patch attached


 Description  « Hide
When you type Japanese text, the keys you typed first appear as preedits (or composition in Windows' terminology), and they are sent to application after the user's selection. SL Viewer doesn't take care of the preedits, and they appear poorly.

There are several strategies to show preedits, but anyway they should appear somewhere close to the text input caret. However, in SL viewer, they appear somewhere else, e.g., top left corner of the viewer window, lower left, or somewhere close to lower right...

I expect similar poor behaviour on MacOS, but I have not tested by myself.

I'm working on the issue and preliminary code is working on my own PC, though it needs some more work. Also, the change involves the platform independent code (text input components in llui needs to be changed to notify IME (through platform dependent classes) on their status.), I think I need to write MacOS specific codes befor the patch goes out.

REPRO:

Setup your Windows for Japanese input/output.
Start SL viewer and login
Open the chat bar.
Turn your Japanese IME on (with the keystroke you defined on Windows control panel; the default is left-ALT + left-CTRL.)
Type "A" key.

Observed behaviour:

A Japanese hiragana letter whose sounds is "A" is shown somewhere far from the input caret.

Expected behaviour:

The Japanese character apears just on the text caret.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Gigs Taggart added a comment - 22/Apr/07 10:58 PM
No reproduction on mac, must be Windows specific.

Alissa Sabre added a comment - 17/Jul/07 03:29 PM
I've been working on this issue. The attached patch IME-20070716.patch is the latest snapshot. It is against 1.18.0.6 source files.

The patch makes the viewer
(1) to accept Input Method keystrokes from the beginning and show them where user's focus is on,
(2) to show texts being converted on the location where the text caret is,
(3) to show some indication (underlines) that some particular text is not comitted yet, and
(4) to make various auxiliary information near the user's focus.
In short, it makes the SL viewer to behave as usual Japanese/Chinese/Korean handling application programs.

Please not that this is just a snap shot from my own development. It mostly works, but it has some problems. I don't think the patch is ready for merge into the SL release source tree. It should be considered as something like a "technology preview" or "concept prover".

For those who are lazy, I put pre-build binary (main executables only) that integrates this path on my blog site.

Windows binary is at http://alissa-sabre.cocolog-nifty.com/files/IME-20070716-Win32.zip and MacOS binary is at http://alissa-sabre.cocolog-nifty.com/files/IME-20070716-Mac.zip I also put a screen shot taken on this binary at http://alissa-sabre.cocolog-nifty.com/ss/IME-20070716-Win.png

Have fun and stay tuned



Alissa Sabre added a comment - 19/Aug/07 07:36 AM
I updated the experimental/preliminary patch. It is attached to this issue as IME-20070819.patch. It is against 1.18.2.0 source. The patch works on both Windows and MacOS.

I think that it is not yet ready for import.

You can try it by applying the patch and build the viewer by yourself, or you can download the pre-compiled binary from my blog site. http://alissa-sabre.cocolog-nifty.com/files/IME-20070819-Win32.zip for Windows and http://alissa-sabre.cocolog-nifty.com/files/IME-20070819-Mac.zip for MacOS (Universal Binary.)


Alissa Sabre added a comment - 09/Sep/07 09:58 AM
I'm attaching a new patch. It is against 1.18.3(2)RC.

Some more bugs regarding input method handling are fixed.

I have a feeling that the patch is fairly stable now and is ready for inclusion in a beta version. (I don't think it is ready for inclusion in a RC/Release viewers, however.)

My own build is available on my blog site as always. Windows binary is at http://alissa-sabre.cocolog-nifty.com/files/IME-20070909-Win32.zip and MacOS (Universal) binary is at http://alissa-sabre.cocolog-nifty.com/files/ime-20070909-Mac.zip


Alissa Sabre added a comment - 10/Sep/07 07:45 AM
I made a mistake on creating the ime-20070909.patch. So, I re-created the patch and uploaded it with the same name, hoping the new one replaces the old one. The result was: two patches of the same file name are listed.

SOrry for the confusion.

The newer patch is http://jira.secondlife.com/secure/attachment/11891/ime-20070909.patch

Note that the patch adds a new file, linden/indra/llwindow/llpreeditor.h, so you need to adjust your project to include it.

Also note that this patch file includes those for VWR-1352, VWR-1888, and VWR-2116.


Simon Linden added a comment - 14/Sep/07 03:42 PM
Hi Alissa - I dug into the patch, and it looks like there is a lot of good code in there, but also a lot of extra stuff unrelated to the Japanese input issues. Could you make a bundle with your latest versions of these files:

linden/indra/llcommon/llstring.cpp
linden/indra/llcommon/llstring.h
linden/indra/newview/llimpanel.cpp
linden/indra/llwindow/llwindow.h
linden/indra/llwindow/llwindowmacosx.cpp
linden/indra/llwindow/llwindowmacosx.h
linden/indra/llwindow/llwindowwin32.cpp
linden/indra/llwindow/llwindowwin32.h
linden/indra/llwindow/llpreeditor.h
linden/indra/llui/llui.cpp
linden/indra/llui/llui.h
linden/indra/llui/lllineeditor.cpp
linden/indra/llui/lllineeditor.h
linden/indra/llui/lltexteditor.cpp
linden/indra/llui/lltexteditor.h

It will be easier to merge and understand what you've done with the full source files. Thanks!


Alissa Sabre added a comment - 15/Sep/07 06:36 AM
The file changed-files-20070915.zip contains all files that have been changed to fix the input method issue. These files are based on 1.18.3.2 RC source files. I removed all changes that are not related to input method handling. All of these changes are required to provide better_preedit_handling.

These chagnes include what are only necessary to support some advanced input method features. They also include some changes that are necessary only in Chinese or Korean input method. So, they contain more than a minimum fix to the issue originally reported as VWR-250. If you want to see the minimum changes that are required to fix the original VWR-250 issue, please let me know.


LandRover McMillan added a comment - 16/Sep/07 12:07 PM
Thanks a lot, Alissa! The 20070909 patch works on my computer.

My environment:
Windows Vista, English
Microsoft New Phonetic IME (the default Traditional Chinese IME in Windows Vista)
Microsoft Pinyin IME (the default Simplified Chinese IME in Windows Vista)
Release Candidate Viewer 1.18.3.4

With Alissa's patched EXE, when I began chatting my traditional and simplified Chinese characters appeared directly in the text caret, just as they would in most Windows applications. They no longer go to a small temporary box which is usually far away from the Chat input field.

And, the phrase assisting(to allow the user to select candidate words and phrases from the IME's lexicon when typing)of these Microsoft Windows IMEs (Ch Traditional, Ch Simplified, Japanese) is functional with Alissa's patched SL viewer. I believe this is the user experience most CJK users would want.


Simon Linden added a comment - 16/Oct/07 04:47 PM
This should end up in the 1.18.5 viewer. I think it missed the merge into release and 1.18.4

Thanks for the great OS contribution. This will really move our Japanese support forward, as we now work much better with the input systems.


Alissa Sabre added a comment - 10/Nov/07 04:43 AM
The new patch, ime-20071110.patch, is the updated patch against 1.18.4(3) sources. It is both for Windows and MacOS.

Have fun.


Alissa Sabre added a comment - 10/Nov/07 11:02 PM
SL viewer binaries with this patch is ready for download.

For Windows users: http://alissa-sabre.cocolog-nifty.com/files/IME-20071110-Win32.zip
For Macintosh users: http://alissa-sabre.cocolog-nifty.com/files/IME-20071110-Mac.zip


Alissa Sabre added a comment - 17/Nov/07 04:11 AM
I understand that the change planned on 1.18.5 is delayed to 1.19.0. I'm waiting for the 1.19.0 viewer.

Alissa Sabre added a comment - 23/Nov/07 05:59 AM
I found a Macintosh only problem in my 20071110 patch. 20071123a fixes it.

... Finally I found that the good old system 7 compatible KeyScript() works best even on OSX 10.4!


Alissa Sabre added a comment - 24/Nov/07 12:54 AM
I made a mistake and introduced a new bug in my patch 20071123a. The bug is: When there is a selected text, typing some text using input method does not replace the selected text.

The fix is supplied as the patch ime-20071124.


Alissa Sabre added a comment - 30/Nov/07 07:12 PM
I'm attaching an updated patch against 1.18.5.3, ime-20071201.patch. This patch should contain exactly the same changes as ime-20071123 + ime-20071124.

This patch is primariry for open source developers.

I don't think this patch upload doesn't facilitetae Lindens, since I believe that the equivalent changes should have been integrated into the Linden's internal source repository already, although I have no way to verify it until LL discloses it...


WarKirby Magojiro added a comment - 22/Dec/07 01:28 PM
This issue has been bulk changed to fix pending.

Torley Linden added a comment - 15/Jan/08 07:13 AM
========-
Removed Affects Version/s of "First Look: WindLight" – as it says when you're editing an issue, "ONLY select a "First Look" if this issue ONLY affects that version." We do this to better focus on FL-specific issues. Thanks!
========-

Alissa Sabre added a comment - 09/Feb/08 05:34 AM
Well finally!

I tested 1.19.0 RC1 viewer and found this issue is completely fixed (on Windows and MacOS).

Thank you for the fix.