--- old/src/share/classes/java/awt/Component.java 2012-02-07 16:39:32.108455190 +0800 +++ new/src/share/classes/java/awt/Component.java 2012-02-07 16:39:31.800299687 +0800 @@ -972,6 +972,10 @@ public AccessControlContext getAccessControlContext(Component comp) { return comp.getAccessControlContext(); } + + public boolean areInputMethodsEnabled(Component comp) { + return comp.areInputMethodsEnabled(); + } }); } --- old/src/share/classes/sun/awt/AWTAccessor.java 2012-02-07 16:39:32.856832850 +0800 +++ new/src/share/classes/sun/awt/AWTAccessor.java 2012-02-07 16:39:32.584695517 +0800 @@ -228,6 +228,11 @@ */ AccessControlContext getAccessControlContext(Component comp); + /* + * Returns whether the input method is enabled + */ + boolean areInputMethodsEnabled(Component comp); + } /* --- old/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java 2012-02-07 16:39:33.401107508 +0800 +++ new/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java 2012-02-07 16:39:33.132972200 +0800 @@ -105,7 +105,7 @@ this.target = target; //ComponentAccessor.enableEvents(target,AWTEvent.MOUSE_WHEEL_EVENT_MASK); - target.enableInputMethods(true); + AWTAccessor.ComponentAccessor compAccessor = AWTAccessor.getComponentAccessor(); firstChangeSkipped = false; String text = ((TextArea)target).getText(); @@ -113,14 +113,13 @@ jtext.setWrapStyleWord(true); jtext.getDocument().addDocumentListener(jtext); XToolkit.specialPeerMap.put(jtext,this); - jtext.enableInputMethods(true); + jtext.enableInputMethods(compAccessor.areInputMethodsEnabled(target)); textPane = new AWTTextPane(jtext,this, target.getParent()); setBounds(x, y, width, height, SET_BOUNDS); textPane.setVisible(true); textPane.validate(); - AWTAccessor.ComponentAccessor compAccessor = AWTAccessor.getComponentAccessor(); foreground = compAccessor.getForeground(target); if (foreground == null) { foreground = SystemColor.textText; --- old/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java 2012-02-07 16:39:33.945382168 +0800 +++ new/src/solaris/classes/sun/awt/X11/XTextFieldPeer.java 2012-02-07 16:39:33.705261000 +0800 @@ -73,8 +73,7 @@ xtext = new XAWTTextField(text,this, target.getParent()); xtext.getDocument().addDocumentListener(xtext); xtext.setCursor(target.getCursor()); - target.enableInputMethods(true); - xtext.enableInputMethods(true); + xtext.enableInputMethods(AWTAccessor.getComponentAccessor().areInputMethodsEnabled(target)); XToolkit.specialPeerMap.put(xtext,this); TextField txt = (TextField) target;