|
Quick Lists
|
|
Bug ID:
|
6743433
|
|
Votes
|
123
|
|
Synopsis
|
IM candidate window is not shown until window is deactivated and reactivated again
|
|
Category
|
java:classes_awt
|
|
Reported Against
|
|
|
Release Fixed
|
7(b48),
6u11(b02) (Bug ID:2168122)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
2-High
|
|
Related Bugs
|
6359035
,
6542975
,
6749501
|
|
Submit Date
|
01-SEP-2008
|
|
Description
|
Steps to reproduce:
1. Install Chenese (Taiwan) / Chinese (Traditional) Quick input method support
2. Run any Swing application with text area, for example, Notepad demo
3. Switch into Chinese and start typing into the text area
4. If you don't see IM candidate window while typing, the bug is reproduced
5. Deactivate window (click on the desktop)
6. Acivate window (click on the text area). Candidate window is shown
The problem is reproduced starting from 7.0-b02, so it may be related to 6359035. There is another change request about focus issues revealed by 6359035: 6542975 - but the fix for it doesn't solves this new problem with candidate window.
Posted Date : 2008-09-01 09:52:08.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
Interesting that the problem is not reproducible on Windows Vista. At the same time it is reproducible on Windows XP.
Posted Date : 2008-09-01 11:25:45.0
To open the candidate window AWT goes through the following steps:
1. the system posts the WM_IME_NOTIFY (IMN_OPENCANDIDATE) message to the AWT top level
2. AWT's subclassing procedure consumes the message (AwtComponent::WmImeNotify)
3. calculates the position of the candidate window (AwtComponent::InquireCandidatePosition)
4. tries to pass the WM_IME_NOTIFY message to the next handler by the ::DefSubclassProc call (AwtComponent::OpenCandidateWindow)
5. finally, the last handler in the subclass chain should call the original window procedure for the AWT top level.
Most likely, ::DefSubclassProc fails to call ::DefWindowProc and the step 5 is missed. This happens because AWT calls ::DefSubclassProc in the context of the custom message (WM_AWT_OPENCANDIDATEWINDOW) instead of the WM_IME_NOTIFY message.
The IME's handlers of the WM_IME_NOTIFY message are first hanlders in the subclass chain. So AWT doesn't need to call ::DefSubclassProc and we may directly call the original window procedure by the ::DefWindowProc call
Posted Date : 2008-09-03 10:50:43.0
|
|
Comments
|
Submitted On 18-SEP-2008
1
Submitted On 18-SEP-2008
1
Submitted On 18-SEP-2008
222
Submitted On 18-SEP-2008
33
Submitted On 18-SEP-2008
3
Submitted On 18-SEP-2008
55
Submitted On 18-SEP-2008
222
Submitted On 18-SEP-2008
teresalin
vote
Submitted On 19-SEP-2008
ChaoYi
vote
Submitted On 17-OCT-2008
RayHu
vote
Submitted On 22-OCT-2008
staticpresentation
vote
Submitted On 05-NOV-2008
koostephen
any fix ?
Submitted On 03-DEC-2008
ChaoYi
Bug Fixes in 1.6.0_11.
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |