JDK-8088113 : [Glass, IME] View.enableInputMethodEvents(false) does not disable IME
  • Type: Bug
  • Component: javafx
  • Sub-Component: window-toolkit
  • Affected Version: 8
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2014-04-01
  • Updated: 2024-01-29
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Relates :  
Description
When the keyboard focus changes between nodes, the Scene class will call impl_enableInputMethodEvents(boolean). The argument will be true for text input controls and false for most other nodes. The effect of this is to control whether input method events are forwarded to the controls, allowing them to position the IM composition window and to place the caret within a composition string.

However, regardless of whether the argument is true or false, the platform will still show a composition window when typing. This prevents fixing RT-23883 which needs to stop clear-text from showing when typing in a PasswordField. I have tested this on Windows 7 and compared native controls with FX controls. See my comment in RT-23883. The issue probably exists on Mac OS also, judging from the code, while Gtk seems to be doing the right thing in calling XSetICFocus/XUnsetICFocus.
Comments
We'll take a look at this issue for 8u40. Please re-target RT-23883 appropriately.
30-05-2014

I'll keep it targeted to 8u20 for now, but we should plan to defer these issues if we run out of time.
21-05-2014

Is this likely to make it for 8u20? If not, then we might need to lower the priority of RT-23883 and defer them together.
21-05-2014

Based on the recent discussion in RT-23883, it looks like we want a third option from Quantum & Glass. Apart from keeping the current states, enabled and passively disabled, we need a state to be specifically used when PasswordField is focused, I'll call it actively disabled. I suppose this could be done with an enum replacing the boolean in impl_enableInputMethodEvents(), or by adding a second boolean argument.
02-04-2014

I ran jconsole on Windows 7 and can confirm that Swing is actively disabling IME for JPasswordField (but not for JButton).
02-04-2014