From e1b71defdb3eb4ea13b694a6357521ddc8780155 Mon Sep 17 00:00:00 2001 From: Anton Tarasov Date: Tue, 17 Apr 2018 19:55:03 +0300 Subject: JRE-729 [windows] unreasonable IME activity consumes CPU JR-CR-268 (cherry picked from commit c3040dd) --- src/share/classes/java/awt/Component.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/share/classes/java/awt/Component.java b/src/share/classes/java/awt/Component.java index eaa26dbe47..c9f129c980 100644 --- a/src/share/classes/java/awt/Component.java +++ b/src/share/classes/java/awt/Component.java @@ -62,6 +62,7 @@ import java.security.AccessControlContext; import javax.accessibility.*; import java.applet.Applet; +import sun.security.action.GetBooleanAction; import sun.security.action.GetPropertyAction; import sun.awt.AppContext; import sun.awt.AWTAccessor; @@ -583,6 +584,8 @@ public abstract class Component implements ImageObserver, MenuContainer, */ long eventMask = AWTEvent.INPUT_METHODS_ENABLED_MASK; + private static final boolean INPUT_METHODS_DISABLED; + /** * Static properties for incremental drawing. * @see #imageUpdate @@ -604,6 +607,8 @@ public abstract class Component implements ImageObserver, MenuContainer, s = java.security.AccessController.doPrivileged( new GetPropertyAction("awt.image.redrawrate")); incRate = (s != null) ? Integer.parseInt(s) : 100; + + INPUT_METHODS_DISABLED = java.security.AccessController.doPrivileged(new GetBooleanAction("awt.ime.disabled")); } /** @@ -1585,6 +1590,7 @@ public abstract class Component implements ImageObserver, MenuContainer, * @since 1.2 */ public void enableInputMethods(boolean enable) { + if (INPUT_METHODS_DISABLED) return; if (enable) { if ((eventMask & AWTEvent.INPUT_METHODS_ENABLED_MASK) != 0) return; @@ -5072,6 +5078,7 @@ public abstract class Component implements ImageObserver, MenuContainer, } boolean areInputMethodsEnabled() { + if (INPUT_METHODS_DISABLED) return false; // in 1.2, we assume input method support is required for all // components that handle key events, but components can turn off // input methods by calling enableInputMethods(false). -- cgit v1.2.3