diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/ide/IdeRepaintManager.java | 12 |
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; } |