<Swing Dev> Fwd: Re: TextArea's/TextField's enableInputMethods is not working on linux
Charles Lee
littlee at linux.vnet.ibm.com
Thu Dec 8 04:37:11 UTC 2011
On 12/06/2011 04:37 PM, Charles Lee wrote:
> Sorry, just reply all gets me no swing-dev :-)
>
> Any swing-dev experts can help this?
>
> -------- Original Message --------
> Subject: Re: TextArea's/TextField's enableInputMethods is not working
> on linux
> Date: Tue, 06 Dec 2011 15:02:05 +0800
> From: Charles Lee <littlee at linux.vnet.ibm.com>
> To: core-libs-dev at openjdk.java.net, Naoto Sato <naoto.sato at oracle.com>
>
>
>
> On 05/27/2011 03:18 AM, Naoto Sato wrote:
> > It simply sounds like a bug to me. The behavior should not be different.
> >
> > Naoto
> >
> > (5/26/11 12:25 AM), Sean Chou wrote:
> >> Hi all,
> >>
> >> I found TextArea's/TextField's enableInputMethods is not working on
> >> linux,
> >> even enableInputMethods(false) is invocated, the input method can
> >> still be
> >> enabled. The testcase is as follows:
> >>
> >> /*
> >> * ImfAWTTest.java
> >> */
> >> import java.awt.Component;
> >> import java.awt.Dimension;
> >> import java.awt.FlowLayout;
> >> import java.awt.Frame;
> >> import java.awt.TextArea;
> >> import java.awt.TextField;
> >> import java.awt.event.WindowAdapter;
> >> import java.awt.event.WindowEvent;
> >>
> >> import javax.swing.JTextArea;
> >> import javax.swing.JTextField;
> >>
> >>
> >> public class ImfAWTTest extends Frame {
> >> Component c;
> >> public ImfAWTTest() {
> >> super("Single Frame --- AWT Frame");
> >> // set layout here.
> >> setLayout(new FlowLayout());
> >> // add components here.
> >> c = new TextArea("TextArea component(No IM)");
> >> c.enableInputMethods(false);
> >> c.setPreferredSize(new Dimension(400, 100));
> >> add(c);
> >>
> >> c = new JTextArea("JTextArea component");
> >> c.enableInputMethods(true);
> >> c.setPreferredSize(new Dimension(400, 100));
> >> add(c);
> >>
> >> c = new TextField("TextField component(No IM)",52);
> >> c.enableInputMethods(false);
> >> add(c);
> >>
> >> c = new JTextField("JTextField component(No IM)");
> >> c.enableInputMethods(false);
> >> c.setPreferredSize(new Dimension(400, 20));
> >> add(c);
> >> addWindowListener(new WindowAdapter() {
> >> public void windowClosing(WindowEvent event) {
> >> System.exit(0);
> >> }
> >> });
> >> setSize(850, 360);
> >> setVisible(true);
> >> }
> >> public static void main(String[] args) {
> >> new ImfAWTTest();
> >> }
> >> }
> >>
> >>
> >> Reproduce steps are:
> >> 1. On linux system, run the testcase with b143.
> >> 2. Click 'TextArea component(No IM)'.
> >> 3. Switch Ime window, and type some characters into it
> >>
> >> Expectation:
> >> IME cannot be enabled.
> >> Result:
> >> IME can be used to input.
> >>
> >>
> >> Investigation:
> >> This behavior was developed when Java was using Motif library,
> >> however Java7's
> >> TextArea/TexField does not use Motif any more, so enableInputMethods
> >> doesn't
> >> work.
> >>
> >>
> >> I suppose we need to update the specification about the behavior.
> >> Any comments?
> >>
> >>
> >> --
> >> Best Regards,
> >> Sean Chou
> >>
> >
> Hi all,
>
> Here is a little progress on this issue.
>
> The reason that enableInputMethod(false) does not take any effect is
> that in XTextFieldPeer/XTextAreaPeer init, they will do
> target.enbleInputMethods(true), which is re-enable the input methods again.
> Once I was thinking the fixes should be easy. Just do not set the
> enbleInputMethods(true) should do the trick. But I was found that
> X****Peer was also required to set the inputMethods. Unfortunately, we
> can not get any info about input methods from the target. (Is there
> any?) The "areInputMethodsEnabled" method is package private ....
>
> Any expertise can help on this issue? Thanks in advance.
>
> --
> Yours Charles
>
Hello,
Maybe I need to post this to the awt-dev mailing list?
--
Yours Charles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20111208/d2a76db2/attachment.html>
More information about the swing-dev
mailing list