summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java')
-rw-r--r--platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java b/platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java
index d7118949e5de..4a0e11bf5ff9 100644
--- a/platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java
+++ b/platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java
@@ -128,19 +128,23 @@ public class IdeRepaintManager extends RepaintManager {
final Exception exception = new Exception();
StackTraceElement[] stackTrace = exception.getStackTrace();
for (StackTraceElement st : stackTrace) {
- if (repaint && st.getClassName().startsWith("javax.swing.")) {
+ String className = st.getClassName();
+ String methodName = st.getMethodName();
+
+ if (repaint && className.startsWith("javax.swing.")) {
fromSwing = true;
}
- if (repaint && "imageUpdate".equals(st.getMethodName())) {
+ if (repaint && "imageUpdate".equals(methodName)) {
swingKnownNonAwtOperations = true;
}
- if (st.getClassName().startsWith("javax.swing.JEditorPane") && st.getMethodName().equals("read")) {
+ if ("read".equals(methodName) && className.startsWith("javax.swing.JEditorPane") ||
+ "setCharacterAttributes".equals(methodName) && className.startsWith("javax.swing.text.DefaultStyledDocument")) {
swingKnownNonAwtOperations = true;
break;
}
- if ("repaint".equals(st.getMethodName())) {
+ if ("repaint".equals(methodName)) {
repaint = true;
fromSwing = false;
}