There is different behavior of Component.enableInputMethods(false) in 1.4.2_16.
According to more investigation, this difference comes to occur in 1.4.2_13.
This does not happen to 1.4.2_12(and former), jdk5ux and jdk6ux.
BEHAVIOR and REPRODUCE:
1) Invoke the attached test program.
You will see 2 text fields and 2 buttons, "No Change" and "Disable".
A cursor is flickering in the upper textfield.
2)Try to input some chars with an input method turned on.
You can do that.
3) Click "Disable" button to move the focus to the button.
4) Try to input some chars.
At the above 4) step, any chars. can not be input.
(because the action of "Disable" button is to call Component.enableInputMethods(false) )
This action occurs in 1.4.2_12(and former), jdk5ux and jdk6ux.
ACTUAL(PROBLEMATIC) BEHAVIOR :
At the above 4) step, chars. can be input.
This action occurs in 1.4.2_13 and later version of 1.4.2_XX.
Made corrections and clarifications in the above description.
I don't think you need to implement such as createXIC() method. Current change is OK.
Also, please make sure to test all the bug fixes by this change, i.e., check each bugs that stems from 6306625, and check all of the "See Also" bugs.
Sorry for the delay. I basically compared your changes with Yuriko's porting back to JDK5 line. There are two comments for X11InputMethod.java:
- Is "isDisposed()" needed?
- Your change still lacks some changes in activate() method. (line 315 to 338 in the new file in http://jpsesvr.sfbay.sun.com:8080/ctetools/CodeStore/1880/webrev/webrev.html).
Fujitsu confirmed your FVB worked well in their house.
When the src fix diff. becomes available, please send it to me.