diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java index 354b9c02af71..8e4e5faae76e 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeBuilder.java @@ -344,6 +344,10 @@ public class AbstractTreeBuilder implements Disposable { } } + protected ProgressIndicator getProgressIndicator() { + return getUi().getProgressIndicator(); + } + protected void updateAfterLoadedInBackground(Runnable runnable) { if (myUi.isPassthroughMode()) { runnable.run(); diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java index a73971d4cc5a..676013c50902 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java @@ -1784,6 +1784,10 @@ public class AbstractTreeUi { return result; } + public ProgressIndicator getProgressIndicator() { + return myProgress; + } + static class ElementNode extends DefaultMutableTreeNode { Set myElements = new HashSet(); diff --git a/platform/platform-api/src/com/intellij/openapi/application/UserActivity.java b/platform/platform-api/src/com/intellij/openapi/application/UserActivity.java index d4adfc01dc7b..a8b6b6bd2cd5 100644 --- a/platform/platform-api/src/com/intellij/openapi/application/UserActivity.java +++ b/platform/platform-api/src/com/intellij/openapi/application/UserActivity.java @@ -17,6 +17,9 @@ package com.intellij.openapi.application; import com.intellij.util.messages.Topic; +import javax.swing.*; +import java.awt.*; +import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; @@ -41,4 +44,22 @@ public interface UserActivity { } } + class Util { + + public static boolean isEditorActivity(InputEvent e) { + Component c = null; + if (e instanceof KeyEvent) { + c = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); + } else if (e instanceof MouseEvent) { + c = SwingUtilities.getDeepestComponentAt(e.getComponent(), ((MouseEvent)e).getX(), ((MouseEvent)e).getY()); + } + + if (c instanceof JComponent) { + return Boolean.TRUE.equals(((JComponent)c).getClientProperty("isEditor")); + } + + return false; + } + } + } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java index e6c07a9ca7ad..85663847e59c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorComponentImpl.java @@ -44,6 +44,7 @@ public class EditorComponentImpl extends JComponent implements Scrollable, DataP enableInputMethods(true); setFocusCycleRoot(true); setOpaque(true); + putClientProperty("isEditor", Boolean.TRUE); } public EditorImpl getEditor() {