<AWT Dev> enableInputMethod(false) does not work in the TextArea and TextField on the linux platform
Anthony Petrov
anthony.petrov at oracle.com
Tue Feb 7 03:29:32 PST 2012
Hi Charles,
The general idea of the fix is OK and the fix looks fine to me.
However, there's still a problem if an app enables or disables Input
Methods dynamically during the app's execution. The updated status of
the property needs to be propagated to the jtext or xtext somehow.
--
best regards,
Anthony
On 2/7/2012 1:17 PM, Charles Lee wrote:
> Hi guys,
>
> Given a simple test case below[1], enableInputMethod(false) does not
> work. We can always invoke input method.
> [1]
> public class MyAWTTest extends JFrame {
> Component c;
>
> public MyAWTTest() {
> super("Single Frame --- AWT Frame");
>
> setLayout(new FlowLayout());
>
> c = new TextArea("TextArea component(No IM)");
> c.enableInputMethods(false);
> c.setPreferredSize(new Dimension(400, 100));
> add(c);
>
> c = new TextField("TextField component(No IM)", 52);
> c.enableInputMethods(false);
> add(c);
>
> setSize(850, 360);
> setVisible(true);
>
> setDefaultCloseOperation(EXIT_ON_CLOSE);
> }
>
> public static void main(String[] args) {
> SwingUtilities.invokeLater(new Runnable() {
> public void run() {
> new MyAWTTest();
> }
> });
>
> }
> }
>
> Patch @ http://cr.openjdk.java.net/~littlee/OJDK-124/webrev.00/
> <http://cr.openjdk.java.net/%7Elittlee/OJDK-124/webrev.00/>
>
> The patch is mainly about:
> 1. Add a new method in the ComponentAccessor which help to escape the
> package restraints. Please check the changes in Component and AWTAccessor.
> 2. Remove the enableInputMethod(true) in the XTextAreaPeer and
> XTextFieldPeer and use areInputMethodEnabled to set jtext correctly.
> Please check the changes in XTextAreaPeer and XTextFieldPeer.
>
> I know it may not be a beautiful fix, but anyone interests in it?
>
More information about the awt-dev
mailing list