United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6575419 Solaris : XSetICFoucs is not called with Java application at appropriate timing
JDK-6575419 : Solaris : XSetICFoucs is not called with Java application at appropriate timing

Details
Type:
Bug
Submit Date:
2007-06-29
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
client-libs
OS:
solaris,solaris_11,solaris_10,solaris_nevada
Sub-Component:
java.awt:i18n
CPU:
sparc,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
solaris_10u2,solaris_10u7,solaris_11,6
Fixed Versions:

Related Reports
Backport:
Relates:

Sub Tasks

Description
When Java application get keyboard focus, it does not call XSetICFocus from the second time. The behavior of 1.5.0_07(S10U2 bundled) was that it always called XSetICFocus when it got the keyboard focus. But 1.5.0_12 or later include 1.6.0 does not call XSetICFocus at getting keyboard focus. (do not know 1.5.0_08 <-> 1.5.0_11)
This causes problem regarding Input Language switcing (6487681) or IM on/off sync (6574467) of IIIMF for Java application only on Solaris platform. 
Please call XSetICFocus when input fiels/area get keyboard focus. 
We'd like to have update release for both of 1.5.0 and 1.6.0 (S10U5 and Nevada).
The problem for ibus is that ibus can show aux window such as
lookup choice or ibus aux pallet with java app only first time.
Once input focus moves out from java app, the ibus aux window
never comes up since the java app does not send focus IN event
to ibus xim server.

                                    

Comments
EVALUATION

Tested on 1.5.0_09 and 1.5.0_10(system default java) on s10s_u2wos_09a SPARC.
The problem is not seen on 1.5.0_09, but the problem starts in 1.5.0_10.
In 1.5.0_10, 6228914 is backported from JDK6 and the a part of the changes in X11InputMethod.java seems to be the cause of this issue. More updates will follow.

6228914 is a perf improvement fix.
                                     
2007-07-11
EVALUATION

Tested with latest JDK6U3 build.
A part of the fix for 6228914 (specifically changes in X11InputMethod.java) is the cause of the problem. 

The changes in X11InputMethod.java addresses the following:(copied from its evaluation)
1. Delay resetting the XIC focus when deactivate is called and record the current XIC focussed component.
2. When activate is called, compare the current focused component peer with the saved XIC focussed component peer. If they are same, no need to take any actions (calling setXICFocus). Otherwise, reset the old XIC focus and set the XIC focus for the new focussed component.
                                     
2007-07-12
EVALUATION

Need to take the temporary focus lost info into account. The fix is to save the isTemporary value in deactivate() and to call setXICFocus() when it was temporary focus lost.
                                     
2010-02-10



Hardware and Software, Engineered to Work Together