aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tarasov <anton.tarasov@jetbrains.com>2018-04-17 19:55:03 +0300
committerAnton Tarasov <anton.tarasov@jetbrains.com>2018-04-18 19:18:46 +0300
commite1b71defdb3eb4ea13b694a6357521ddc8780155 (patch)
tree6ba5f2dfd9a1cc563a99d1ae58238ec0418cf394
parent305239c4730c9d1dce8ec90628087fc86d39da62 (diff)
downloadjdk8u_jdk-e1b71defdb3eb4ea13b694a6357521ddc8780155.tar.gz
JRE-729 [windows] unreasonable IME activity consumes CPUjb8u152-b1136.33
JR-CR-268 (cherry picked from commit c3040dd)
-rw-r--r--src/share/classes/java/awt/Component.java7
1 files changed, 7 insertions, 0 deletions
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).