From 38d30a2eb6ff1e61ccf5e86284d0d7e5f20a2f6d Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Mon, 8 Feb 2016 12:06:24 +0300 Subject: [PATCH] Better allocation trace for the focus tracer. Deprecation of forced requestFocus methods. --- .../regexp/intention/CheckRegExpForm.java | 4 +- .../debugger/ui/DebuggerEditorImpl.java | 2 +- .../configuration/artifacts/LayoutTree.java | 2 +- .../classpath/ClasspathPanelImpl.java | 2 +- .../projectImport/ImportChooserStep.java | 2 +- .../options/editor/ExcludeTable.java | 2 +- .../ExtractMethodObjectDialog.java | 2 +- .../IntroduceParameterObjectDialog.java | 6 +- .../ReplaceConstructorWithBuilderDialog.java | 2 +- .../WrapReturnValueDialog.java | 6 +- .../intellij/unscramble/ThreadDumpPanel.java | 2 +- .../com/intellij/find/EditorSearchTest.java | 2 +- .../src/com/intellij/diff/util/DiffUtil.java | 2 +- .../openapi/diff/impl/dir/DirDiffPanel.java | 2 +- .../documentation/DocumentationManager.java | 6 +- .../codeInsight/lookup/impl/LookupImpl.java | 2 +- .../codeInsight/lookup/impl/LookupUi.java | 2 +- .../impl/LiveTemplateSettingsEditor.java | 4 +- .../execution/impl/RunConfigurable.java | 2 +- .../intellij/find/EditorSearchSession.java | 2 +- .../intellij/find/SearchReplaceComponent.java | 2 +- .../ide/actions/SearchEverywhereAction.java | 2 +- .../impl/ProjectViewSelectInGroupTarget.java | 2 +- .../ide/navigationToolbar/NavBarPanel.java | 6 +- .../ide/navigationToolbar/NavBarPopup.java | 2 +- .../projectView/BaseProjectTreeBuilder.java | 2 +- .../ide/projectView/impl/ProjectViewImpl.java | 2 +- .../StructureViewComponent.java | 2 +- .../intellij/ide/util/FileStructurePopup.java | 2 +- .../ide/util/gotoByName/ChooseByNameBase.java | 8 +- .../internal/psiView/PsiViewerDialog.java | 8 +- .../editor/actions/IncrementalFindAction.java | 2 +- .../ChangeSignatureDialogBase.java | 2 +- .../com/intellij/tools/ToolEditorDialog.java | 2 +- .../intellij/ide/wizard/AbstractWizard.java | 2 +- .../intellij/ide/wizard/AbstractWizardEx.java | 2 +- .../fileEditor/OpenFileDescriptor.java | 2 +- .../src/com/intellij/openapi/ui/ComboBox.java | 2 +- .../intellij/openapi/ui/DialogWrapper.java | 2 +- .../com/intellij/openapi/wm/FocusCommand.java | 7 +- .../intellij/openapi/wm/FocusRequestor.java | 22 ++ .../wm/PassThroughIdeFocusManager.java | 23 ++ .../src/com/intellij/ui/table/JBTable.java | 2 +- .../com/intellij/ui/tabs/impl/JBTabsImpl.java | 4 +- .../com/intellij/util/ui/tree/TreeUtil.java | 2 +- .../intellij/designer/LightToolWindow.java | 2 +- .../intellij/diagnostic/IdeErrorsDialog.java | 2 +- .../intellij/help/impl/IdeaHelpBroker.java | 2 +- .../com/intellij/ide/actions/Switcher.java | 12 +- .../com/intellij/ide/impl/ProjectUtil.java | 2 +- .../ide/util/GotoLineNumberDialog.java | 2 +- .../internal/focus/FocusTracesAction.java | 2 +- .../internal/focus/FocusTracesDialog.java | 4 +- .../openapi/diff/impl/DiffPanelImpl.java | 4 +- .../openapi/editor/impl/EditorImpl.java | 2 +- .../impl/EditorTabbedContainer.java | 2 +- .../openapi/fileEditor/impl/EditorWindow.java | 6 +- .../options/newEditor/SettingsEditor.java | 2 +- .../options/newEditor/SettingsFilter.java | 2 +- .../openapi/progress/util/ProgressDialog.java | 2 +- .../com/intellij/openapi/ui/FrameWrapper.java | 2 +- .../ui/impl/DialogWrapperPeerImpl.java | 2 +- .../openapi/wm/impl/FocusManagerImpl.java | 276 ++++++++++-------- .../openapi/wm/impl/FocusRequestInfo.java | 8 +- .../wm/impl/IdeFocusManagerHeadless.java | 20 ++ .../openapi/wm/impl/IdeFocusManagerImpl.java | 20 ++ .../wm/impl/ToolWindowManagerImpl.java | 13 +- .../RequestFocusInEditorComponentCmd.java | 11 +- .../commands/RequestFocusInToolWindowCmd.java | 8 +- .../src/com/intellij/ui/BalloonImpl.java | 4 +- .../com/intellij/ui/FinderRecursivePanel.java | 6 +- .../src/com/intellij/ui/FocusTrackback.java | 2 +- .../ui/content/impl/ContentManagerImpl.java | 4 +- .../com/intellij/ui/popup/AbstractPopup.java | 8 +- .../util/ui/ValidatingTableEditor.java | 2 +- .../intellij/util/ui/table/JBListTable.java | 2 +- .../sm/runner/ui/SMTestRunnerResultsForm.java | 2 +- .../runner/ui/statistics/StatisticsPanel.java | 2 +- .../export/ExportTestResultsForm.java | 4 +- .../changes/ui/ChangeListChooserPanel.java | 2 +- .../changes/ui/CommitChangeListDialog.java | 2 +- .../intellij/vcs/log/impl/VcsLogManager.java | 2 +- .../ui/XLightBreakpointPropertiesPanel.java | 2 +- .../evaluate/XDebuggerEvaluationDialog.java | 2 +- .../xdebugger/impl/ui/DebuggerUIUtil.java | 2 +- .../impl/ui/XDebuggerEditorBase.java | 2 +- .../devkit/src/dom/generator/DomGenPanel.java | 4 +- .../src/git4idea/push/GitPushTargetPanel.java | 2 +- .../wizard/GradleModuleWizardStep.java | 2 +- .../dynamic/DynamicToolWindowWrapper.java | 2 +- .../dynamic/GrDynamicImplicitProperty.java | 2 +- .../idea/svn/dialogs/CopiesPanel.java | 2 +- .../IntersectingLocalChangesPanel.java | 2 +- .../terminal/AbstractTerminalRunner.java | 2 +- .../propertyTable/PropertyTablePanel.java | 2 +- .../learning/actions/StudyCheckAction.java | 4 +- .../actions/StudyRefreshTaskFileAction.java | 2 +- .../console/PyOpenDebugConsoleAction.java | 2 +- .../python/console/PythonConsoleView.java | 2 +- .../PythonDebugLanguageConsoleView.java | 2 +- .../emmet/EmmetAbbreviationBalloon.java | 2 +- 101 files changed, 399 insertions(+), 263 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java index 9d1ea297ace6..ac17a0ba7a22 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/intention/CheckRegExpForm.java @@ -92,12 +92,12 @@ public class CheckRegExpForm { super.addNotify(); disposable = Disposer.newDisposable(); - IdeFocusManager.getGlobalInstance().requestFocus(mySampleText, true); + IdeFocusManager.getGlobalInstance().requestFocus(mySampleText); new AnAction(){ @Override public void actionPerformed(AnActionEvent e) { - IdeFocusManager.findInstance().requestFocus(myRegExp.getFocusTarget(), true); + IdeFocusManager.findInstance().requestFocus(myRegExp.getFocusTarget()); } }.registerCustomShortcutSet(CustomShortcutSet.fromString("shift TAB"), mySampleText); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java index d24a2b3e7faa..215dda21e46e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerEditorImpl.java @@ -145,7 +145,7 @@ public abstract class DebuggerEditorImpl extends CompletionEditor { public void actionPerformed(AnActionEvent e) { setFactory(fragmentFactory); setText(getText()); - IdeFocusManager.getInstance(getProject()).requestFocus(DebuggerEditorImpl.this, true); + IdeFocusManager.getInstance(getProject()).requestFocus(DebuggerEditorImpl.this); } }); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/LayoutTree.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/LayoutTree.java index 9ac88ac60f82..f27e11e5d164 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/LayoutTree.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/LayoutTree.java @@ -241,7 +241,7 @@ public class LayoutTree extends SimpleDnDAwareTree implements AdvancedDnDSource } private void requestFocusToTree() { - IdeFocusManager.getInstance(myArtifactsEditor.getContext().getProject()).requestFocus(LayoutTree.this, true); + IdeFocusManager.getInstance(myArtifactsEditor.getContext().getProject()).requestFocus(LayoutTree.this); } } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathPanelImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathPanelImpl.java index 76f33318392c..a5f0ef2c4b69 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathPanelImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/ClasspathPanelImpl.java @@ -649,7 +649,7 @@ public class ClasspathPanelImpl extends JPanel implements ClasspathPanel { TableUtil.scrollSelectionToVisible(myEntryTable); } } - IdeFocusManager.getInstance(myState.getProject()).requestFocus(myEntryTable, true); + IdeFocusManager.getInstance(myState.getProject()).requestFocus(myEntryTable); } private int moveRow(final int row, final int increment) { diff --git a/java/idea-ui/src/com/intellij/projectImport/ImportChooserStep.java b/java/idea-ui/src/com/intellij/projectImport/ImportChooserStep.java index 07f5a8bbda8f..e5613ef93366 100644 --- a/java/idea-ui/src/com/intellij/projectImport/ImportChooserStep.java +++ b/java/idea-ui/src/com/intellij/projectImport/ImportChooserStep.java @@ -97,7 +97,7 @@ public class ImportChooserStep extends ProjectImportWizardStep { @Override public void actionPerformed(ActionEvent e) { if (myImportFrom.isSelected()) { - IdeFocusManager.getInstance(context.getProject()).requestFocus(myList, false); + IdeFocusManager.getInstance(context.getProject()).requestFocus(myList); } updateSteps(); } diff --git a/java/java-impl/src/com/intellij/application/options/editor/ExcludeTable.java b/java/java-impl/src/com/intellij/application/options/editor/ExcludeTable.java index 6673a8a75bf6..f521e0407160 100644 --- a/java/java-impl/src/com/intellij/application/options/editor/ExcludeTable.java +++ b/java/java-impl/src/com/intellij/application/options/editor/ExcludeTable.java @@ -185,7 +185,7 @@ class ExcludeTable extends ListTableWithButtons { getTableView().clearSelection(); getTableView().addRowSelectionInterval(index, index); ScrollingUtil.ensureIndexIsVisible(getTableView(), index, 0); - IdeFocusManager.getGlobalInstance().requestFocus(getTableView(), false); + IdeFocusManager.getGlobalInstance().requestFocus(getTableView()); } void reset() { diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java index be4e56dc2119..934b1e8f0a9c 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java @@ -249,7 +249,7 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract final ActionListener updateSugnatureListener = new ActionListener() { public void actionPerformed(final ActionEvent e) { updateSignature(); - IdeFocusManager.getInstance(myProject).requestFocus(myCreateInnerClassRb.isSelected() ? myInnerClassName : myMethodName, false); + IdeFocusManager.getInstance(myProject).requestFocus(myCreateInnerClassRb.isSelected() ? myInnerClassName : myMethodName); } }; diff --git a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectDialog.java b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectDialog.java index 5dc305a6884e..c62d6a6841c6 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectDialog.java @@ -120,11 +120,11 @@ public class IntroduceParameterObjectDialog extends RefactoringDialog { toggleRadioEnablement(); final IdeFocusManager focusManager = IdeFocusManager.getInstance(myProject); if (useExistingClass()) { - focusManager.requestFocus(existingClassField, true); + focusManager.requestFocus(existingClassField); } else if (myCreateInnerClassRadioButton.isSelected()) { - focusManager.requestFocus(myInnerClassNameTextField, true); + focusManager.requestFocus(myInnerClassNameTextField); } else { - focusManager.requestFocus(classNameField, true); + focusManager.requestFocus(classNameField); } } }; diff --git a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderDialog.java b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderDialog.java index f81aeca473ba..7316d8e95ced 100644 --- a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderDialog.java @@ -169,7 +169,7 @@ public class ReplaceConstructorWithBuilderDialog extends RefactoringDialog { public void actionPerformed(final ActionEvent e) { setEnabled(myCreateBuilderClassRadioButton.isSelected()); IdeFocusManager.getInstance(myProject).requestFocus( - myCreateBuilderClassRadioButton.isSelected() ? myNewClassName : myExistentClassTF.getChildComponent(), true); + myCreateBuilderClassRadioButton.isSelected() ? myNewClassName : myExistentClassTF.getChildComponent()); validateButtons(); } }; diff --git a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueDialog.java b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueDialog.java index 6c0eb5c41f53..8514227754ee 100644 --- a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueDialog.java @@ -241,13 +241,13 @@ class WrapReturnValueDialog extends RefactoringDialog { UIUtil.setEnabled(myCreateInnerPanel, myCreateInnerClassButton.isSelected(), true); final IdeFocusManager focusManager = IdeFocusManager.getInstance(myProject); if (useExistingClassButton.isSelected()) { - focusManager.requestFocus(existingClassField, true); + focusManager.requestFocus(existingClassField); } else if (myCreateInnerClassButton.isSelected()) { - focusManager.requestFocus(myInnerClassNameTextField, true); + focusManager.requestFocus(myInnerClassNameTextField); } else { - focusManager.requestFocus(classNameField, true); + focusManager.requestFocus(classNameField); } validateButtons(); } diff --git a/java/java-impl/src/com/intellij/unscramble/ThreadDumpPanel.java b/java/java-impl/src/com/intellij/unscramble/ThreadDumpPanel.java index e84a09a485d0..af3e117def7a 100644 --- a/java/java-impl/src/com/intellij/unscramble/ThreadDumpPanel.java +++ b/java/java-impl/src/com/intellij/unscramble/ThreadDumpPanel.java @@ -383,7 +383,7 @@ public class ThreadDumpPanel extends JPanel implements DataProvider { public void setSelected(AnActionEvent e, boolean state) { myFilterPanel.setVisible(state); if (state) { - IdeFocusManager.getInstance(getEventProject(e)).requestFocus(myFilterField, true); + IdeFocusManager.getInstance(getEventProject(e)).requestFocus(myFilterField); myFilterField.selectText(); } updateThreadList(); diff --git a/java/java-tests/testSrc/com/intellij/find/EditorSearchTest.java b/java/java-tests/testSrc/com/intellij/find/EditorSearchTest.java index adcda7eab66f..cf44914da130 100644 --- a/java/java-tests/testSrc/com/intellij/find/EditorSearchTest.java +++ b/java/java-tests/testSrc/com/intellij/find/EditorSearchTest.java @@ -40,7 +40,7 @@ public class EditorSearchTest extends LightPlatformCodeInsightFixtureTestCase { assertEquals(key, getSearchTextComponent().getSelectedText()); assertEquals(3, getSearchTextComponent().getCaretPosition()); assertTrue(getEditorSearchComponent().hasMatches()); - IdeFocusManager.findInstance().requestFocus(myFixture.getEditor().getContentComponent(), false); + IdeFocusManager.findInstance().requestFocus(myFixture.getEditor().getContentComponent()); IdeEventQueue.getInstance().flushQueue(); myFixture.performEditorAction("Find"); diff --git a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java index fb87929c8f9d..f93729d6d8f7 100644 --- a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java @@ -560,7 +560,7 @@ public class DiffUtil { public static void requestFocus(@Nullable Project project, @Nullable Component component) { if (component == null) return; - IdeFocusManager.getInstance(project).requestFocus(component, true); + IdeFocusManager.getInstance(project).requestFocus(component); } // diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java index 70b5ef3fae7a..6e682fd80d55 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffPanel.java @@ -447,7 +447,7 @@ public class DirDiffPanel implements Disposable, DataProvider { focusManager.doWhenFocusSettlesDown(new Runnable() { @Override public void run() { - focusManager.requestFocus(myTable, true); + focusManager.requestFocus(myTable); } }); } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java index 21ee66b2ba6f..6719c3de1a7a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java @@ -145,7 +145,7 @@ public class DocumentationManager extends DockablePopupManager configurable = createNewConfiguration(settings, typeNode, getSelectedNode()); - IdeFocusManager.getInstance(myProject).requestFocus(configurable.getNameTextField(), true); + IdeFocusManager.getInstance(myProject).requestFocus(configurable.getNameTextField()); configurable.getNameTextField().setSelectionStart(0); configurable.getNameTextField().setSelectionEnd(copyName.length()); } diff --git a/platform/lang-impl/src/com/intellij/find/EditorSearchSession.java b/platform/lang-impl/src/com/intellij/find/EditorSearchSession.java index b66616b06f35..ae6c5f245776 100644 --- a/platform/lang-impl/src/com/intellij/find/EditorSearchSession.java +++ b/platform/lang-impl/src/com/intellij/find/EditorSearchSession.java @@ -359,7 +359,7 @@ public class EditorSearchSession implements SearchSession, @Override public void close() { - IdeFocusManager.getInstance(getProject()).requestFocus(myEditor.getContentComponent(), false); + IdeFocusManager.getInstance(getProject()).requestFocus(myEditor.getContentComponent()); myLivePreviewController.dispose(); myEditor.setHeaderComponent(null); diff --git a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java index f3a2fab88b96..d625b2af322a 100644 --- a/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java +++ b/platform/lang-impl/src/com/intellij/find/SearchReplaceComponent.java @@ -332,7 +332,7 @@ public class SearchReplaceComponent extends EditorHeaderComponent implements Dat close(); } else { - IdeFocusManager.getInstance(myProject).requestFocus(myTargetComponent, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTargetComponent); addTextToRecent(mySearchTextComponent); } } diff --git a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java index 11a490ba791b..8f99e4c75c57 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java @@ -808,7 +808,7 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA myBalloon.show(showPoint); initSearchActions(myBalloon, myPopupField); IdeFocusManager focusManager = IdeFocusManager.getInstance(project); - focusManager.requestFocus(editor, true); + focusManager.requestFocus(editor); FeatureUsageTracker.getInstance().triggerFeatureUsed(IdeActions.ACTION_SEARCH_EVERYWHERE); } diff --git a/platform/lang-impl/src/com/intellij/ide/impl/ProjectViewSelectInGroupTarget.java b/platform/lang-impl/src/com/intellij/ide/impl/ProjectViewSelectInGroupTarget.java index 62ebf41fb4e4..7752d7889252 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/ProjectViewSelectInGroupTarget.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/ProjectViewSelectInGroupTarget.java @@ -74,7 +74,7 @@ public class ProjectViewSelectInGroupTarget implements CompositeSelectInTarget, target.selectIn(context, requestFocus); return ActionCallback.DONE; } - }, true); + }); } else { target.selectIn(context, requestFocus); diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java index f41b9f5705df..f9fcf5f7d889 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPanel.java @@ -291,7 +291,7 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner, Dis if (!myList.isEmpty()) { myModel.setSelectedIndex(myList.size() - 1); if (requestFocus) { - IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); + IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this); } } } @@ -412,7 +412,7 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner, Dis if (e.isPopupTrigger()) { myModel.setSelectedIndex(index); - IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); + IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this); rightClick(index); e.consume(); } @@ -424,7 +424,7 @@ public class NavBarPanel extends JPanel implements DataProvider, PopupOwner, Dis } else if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) { myModel.setSelectedIndex(index); - IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this, true); + IdeFocusManager.getInstance(myProject).requestFocus(NavBarPanel.this); doubleClick(index); e.consume(); } diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPopup.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPopup.java index 74417627abd1..4d64a42cdb1e 100644 --- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPopup.java +++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/NavBarPopup.java @@ -76,7 +76,7 @@ public class NavBarPopup extends LightweightHint implements Disposable{ if (e.getComponent() != getList()) return; if (!e.isConsumed() && e.isPopupTrigger()) { myPanel.getModel().setSelectedIndex(selectedIndex); - IdeFocusManager.getInstance(myPanel.getProject()).requestFocus(myPanel, true); + IdeFocusManager.getInstance(myPanel.getProject()).requestFocus(myPanel); myPanel.rightClick(selectedIndex); e.consume(); } else { diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/BaseProjectTreeBuilder.java b/platform/lang-impl/src/com/intellij/ide/projectView/BaseProjectTreeBuilder.java index dd46f6496c46..b14ae246dd9b 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/BaseProjectTreeBuilder.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/BaseProjectTreeBuilder.java @@ -206,7 +206,7 @@ public abstract class BaseProjectTreeBuilder extends AbstractTreeBuilder { @Override public void run() { if (requestFocus && virtualSelectTarget == null && getUi().isReady()) { - focusRequestor.requestFocus(getTree(), true); + focusRequestor.requestFocus(getTree()); } result.setDone(); diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index aa5876292522..034141d4507c 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -501,7 +501,7 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo myAutoScrollToSourceHandler.install(newPane.myTree); - IdeFocusManager.getInstance(myProject).requestFocus(newPane.getComponentToFocus(), false); + IdeFocusManager.getInstance(myProject).requestFocus(newPane.getComponentToFocus()); newPane.restoreExpandedPaths(); if (selectedPsiElement != null) { diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java b/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java index 0eec66ec6988..04c707c27974 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java +++ b/platform/lang-impl/src/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java @@ -486,7 +486,7 @@ public class StructureViewComponent extends SimpleToolWindowPanel implements Tre @Override public void run() { if (requestFocus) { - IdeFocusManager.getInstance(myProject).requestFocus(myAbstractTreeBuilder.getTree(), false); + IdeFocusManager.getInstance(myProject).requestFocus(myAbstractTreeBuilder.getTree()); } } }); diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java index 417d3685244a..7c2fb1c58fd9 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java @@ -359,7 +359,7 @@ public class FileStructurePopup implements Disposable, TreeActionsOwner { myPopup.setSize(new Dimension(myPreferredWidth + 10, myPopup.getSize().height)); } - IdeFocusManager.getInstance(myProject).requestFocus(myTree, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTree); SwingUtilities.windowForComponent(myPopup.getContent()).addWindowFocusListener(new WindowFocusListener() { @Override public void windowGainedFocus(WindowEvent e) { diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java index 9dcc72110d80..58ba85d4b85a 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNameBase.java @@ -527,13 +527,13 @@ public abstract class ChooseByNameBase { else { Component oppositeComponent = e.getOppositeComponent(); if (oppositeComponent == myCheckBox) { - IdeFocusManager.getInstance(myProject).requestFocus(myTextField, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTextField); return; } if (oppositeComponent != null && !(oppositeComponent instanceof JFrame) && myList.isShowing() && (oppositeComponent == myList || SwingUtilities.isDescendingFrom(myList, oppositeComponent))) { - IdeFocusManager.getInstance(myProject).requestFocus(myTextField, true);// Otherwise me may skip some KeyEvents + IdeFocusManager.getInstance(myProject).requestFocus(myTextField);// Otherwise me may skip some KeyEvents return; } @@ -642,7 +642,7 @@ public abstract class ChooseByNameBase { @Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { if (!myTextField.hasFocus()) { - IdeFocusManager.getInstance(myProject).requestFocus(myTextField, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTextField); } if (clickCount == 2) { @@ -895,7 +895,7 @@ public abstract class ChooseByNameBase { IdeFocusManager focusManager = IdeFocusManager.getInstance(myProject); if (isDescendingFromTemporarilyFocusableToolWindow(focusManager.getFocusOwner())) { - focusManager.requestFocus(myTextField, true); + focusManager.requestFocus(myTextField); return false; } else { diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java index 93f16d74899f..11d4739cce24 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java @@ -534,15 +534,15 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } private void focusEditor() { - IdeFocusManager.getInstance(myProject).requestFocus(myEditor.getContentComponent(), true); + IdeFocusManager.getInstance(myProject).requestFocus(myEditor.getContentComponent()); } private void focusTree() { - IdeFocusManager.getInstance(myProject).requestFocus(myPsiTree, true); + IdeFocusManager.getInstance(myProject).requestFocus(myPsiTree); } private void focusRefs() { - IdeFocusManager.getInstance(myProject).requestFocus(myRefs, true); + IdeFocusManager.getInstance(myProject).requestFocus(myRefs); if (myRefs.getModel().getSize() > 0) { if (myRefs.getSelectedIndex() == -1) { myRefs.setSelectedIndex(0); @@ -551,7 +551,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp } private void focusBlockTree() { - IdeFocusManager.getInstance(myProject).requestFocus(myBlockTree, true); + IdeFocusManager.getInstance(myProject).requestFocus(myBlockTree); } private void initMnemonics() { diff --git a/platform/lang-impl/src/com/intellij/openapi/editor/actions/IncrementalFindAction.java b/platform/lang-impl/src/com/intellij/openapi/editor/actions/IncrementalFindAction.java index 7ab37c2ebfe2..18ab71e9fc7d 100644 --- a/platform/lang-impl/src/com/intellij/openapi/editor/actions/IncrementalFindAction.java +++ b/platform/lang-impl/src/com/intellij/openapi/editor/actions/IncrementalFindAction.java @@ -46,7 +46,7 @@ public class IncrementalFindAction extends EditorAction { if (!editor.isOneLineMode()) { EditorSearchSession search = EditorSearchSession.get(editor); if (search != null) { - IdeFocusManager.getInstance(project).requestFocus(search.getComponent(), true); + IdeFocusManager.getInstance(project).requestFocus(search.getComponent()); FindUtil.configureFindModel(myReplace, editor, search.getFindModel(), false); } else { FindManager findManager = FindManager.getInstance(project); diff --git a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java index 2c9c8283c794..00c0bbbfdc75 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java +++ b/platform/lang-impl/src/com/intellij/refactoring/changeSignature/ChangeSignatureDialogBase.java @@ -560,7 +560,7 @@ public abstract class ChangeSignatureDialogBase extends DialogWrapper { @Override public void run() { final IdeFocusManager focusManager = IdeFocusManager.findInstanceByComponent(component); - focusManager.requestFocus(component, false); + focusManager.requestFocus(component); } }); } diff --git a/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizardEx.java b/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizardEx.java index 3c31629eee3e..9e5dc6ec1a22 100644 --- a/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizardEx.java +++ b/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizardEx.java @@ -126,7 +126,7 @@ public class AbstractWizardEx extends AbstractWizard { setTitle(stepTitle != null ? myTitle + ": " + stepTitle : myTitle); final JComponent toFocus = step.getPreferredFocusedComponent(); if (toFocus != null) { - IdeFocusManager.findInstanceByComponent(getWindow()).requestFocus(toFocus, true); + IdeFocusManager.findInstanceByComponent(getWindow()).requestFocus(toFocus); } } diff --git a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java b/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java index 316fdd4640b2..7675adb5b6c8 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java +++ b/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java @@ -149,7 +149,7 @@ public class OpenFileDescriptor implements Navigatable, ComparableIdeFocusManager */ public interface FocusRequestor extends Disposable { + /** + * Requests focus on a component + * @param c - component to request focus to + * @return action callback that either notifies when the focus was obtained or focus request was dropped + */ + @NotNull + ActionCallback requestFocus(@NotNull Component c); + + /** + * Runs a request focus command, actual focus request is defined by the user in the command itself + * @return action callback that either notifies when the focus was obtained or focus request was dropped + */ + @NotNull + ActionCallback requestFocus(@NotNull FocusCommand command); + + @NotNull + ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace); + /** * Requests focus on a component * @param c - component to request focus to * @param forced - if true - focus request is explicit, must be fulfilled, if false - can be dropped * @return action callback that either notifies when the focus was obtained or focus request was dropped + * @Deprecated */ @NotNull ActionCallback requestFocus(@NotNull Component c, boolean forced); @@ -39,6 +60,7 @@ public interface FocusRequestor extends Disposable { * Runs a request focus command, actual focus request is defined by the user in the command itself * @param forced - if true - focus request is explicit, must be fulfilled, if false - can be dropped * @return action callback that either notifies when the focus was obtained or focus request was dropped + * * @Deprecated */ @NotNull ActionCallback requestFocus(@NotNull FocusCommand command, boolean forced); diff --git a/platform/platform-api/src/com/intellij/openapi/wm/PassThroughIdeFocusManager.java b/platform/platform-api/src/com/intellij/openapi/wm/PassThroughIdeFocusManager.java index f124c85a9f5a..28ff040d58ab 100644 --- a/platform/platform-api/src/com/intellij/openapi/wm/PassThroughIdeFocusManager.java +++ b/platform/platform-api/src/com/intellij/openapi/wm/PassThroughIdeFocusManager.java @@ -34,12 +34,35 @@ public class PassThroughIdeFocusManager extends IdeFocusManager { } @NotNull + @Override + public ActionCallback requestFocus(@NotNull Component c) { + c.requestFocus(); + return ActionCallback.DONE; + } + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull FocusCommand command) { + return command.run(); + } + + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace) { + return requestFocus(c); + } + + @NotNull + @Override public ActionCallback requestFocus(@NotNull Component c, boolean forced) { c.requestFocus(); return ActionCallback.DONE; } @NotNull + @Override + @Deprecated public ActionCallback requestFocus(@NotNull FocusCommand command, boolean forced) { return command.run(); } diff --git a/platform/platform-api/src/com/intellij/ui/table/JBTable.java b/platform/platform-api/src/com/intellij/ui/table/JBTable.java index b90181303795..16dad55baf8b 100644 --- a/platform/platform-api/src/com/intellij/ui/table/JBTable.java +++ b/platform/platform-api/src/com/intellij/ui/table/JBTable.java @@ -444,7 +444,7 @@ public class JBTable extends JTable implements ComponentWithEmptyText, Component // this replaces focus request in JTable.processKeyBinding final IdeFocusManager focusManager = IdeFocusManager.findInstanceByComponent(this); focusManager.setTypeaheadEnabled(false); - focusManager.requestFocus(editorComp, true).doWhenProcessed(new Runnable() { + focusManager.requestFocus(editorComp).doWhenProcessed(new Runnable() { @Override public void run() { focusManager.setTypeaheadEnabled(true); diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java index fb5006d1807a..6d6158d8bb0a 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java @@ -1001,7 +1001,7 @@ public class JBTabsImpl extends JComponent if (isShowing()) { - return myFocusManager.requestFocus(new FocusCommand.ByComponent(toFocus, new Exception()), true); + return myFocusManager.requestFocus(new FocusCommand.ByComponent(toFocus, new Exception())); } else { final ActionCallback result = new ActionCallback(); @@ -1019,7 +1019,7 @@ public class JBTabsImpl extends JComponent @Override public void run() { queued.set(true); - requestor.requestFocus(new FocusCommand.ByComponent(toFocus, new Exception()), true).notify(result); + requestor.requestFocus(new FocusCommand.ByComponent(toFocus, new Exception())).notify(result); } }; return result; diff --git a/platform/platform-api/src/com/intellij/util/ui/tree/TreeUtil.java b/platform/platform-api/src/com/intellij/util/ui/tree/TreeUtil.java index 92348089686e..7c523a595a51 100644 --- a/platform/platform-api/src/com/intellij/util/ui/tree/TreeUtil.java +++ b/platform/platform-api/src/com/intellij/util/ui/tree/TreeUtil.java @@ -846,7 +846,7 @@ public final class TreeUtil { tree.expandPath(treePath); if (requestFocus) { ActionCallback result = new ActionCallback(2); - IdeFocusManager.getInstance(project).requestFocus(tree, true).notifyWhenDone(result); + IdeFocusManager.getInstance(project).requestFocus(tree).notifyWhenDone(result); selectPath(tree, treePath, center).notifyWhenDone(result); return result; } diff --git a/platform/platform-impl/src/com/intellij/designer/LightToolWindow.java b/platform/platform-impl/src/com/intellij/designer/LightToolWindow.java index 7bdb59ea19e2..46a587a66c82 100644 --- a/platform/platform-impl/src/com/intellij/designer/LightToolWindow.java +++ b/platform/platform-impl/src/com/intellij/designer/LightToolWindow.java @@ -140,7 +140,7 @@ public class LightToolWindow extends JPanel { addMouseListener(new MouseAdapter() { public void mouseReleased(final MouseEvent e) { - IdeFocusManager.getInstance(myProject).requestFocus(myFocusedComponent, true); + IdeFocusManager.getInstance(myProject).requestFocus(myFocusedComponent); } }); diff --git a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java index 098f86b88700..0e9d87b3ce01 100644 --- a/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java +++ b/platform/platform-impl/src/com/intellij/diagnostic/IdeErrorsDialog.java @@ -331,7 +331,7 @@ public class IdeErrorsDialog extends DialogWrapper implements MessagePoolListene public void stateChanged(ChangeEvent e) { final JComponent c = getPreferredFocusedComponent(); if (c != null) { - IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(c, true); + IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(c); } } }); diff --git a/platform/platform-impl/src/com/intellij/help/impl/IdeaHelpBroker.java b/platform/platform-impl/src/com/intellij/help/impl/IdeaHelpBroker.java index 4b5e5d87c232..b80e73eeee70 100644 --- a/platform/platform-impl/src/com/intellij/help/impl/IdeaHelpBroker.java +++ b/platform/platform-impl/src/com/intellij/help/impl/IdeaHelpBroker.java @@ -214,7 +214,7 @@ class IdeaHelpBroker extends DefaultHelpBroker implements KeyListener{ myFrame.setState(JFrame.NORMAL); IdeFocusManager focusManager = IdeFocusManager.findInstance(); JComponent target = focusManager.getFocusTargetFor(myFrame.getRootPane()); - focusManager.requestFocus(target != null ? target : myFrame, true); + focusManager.requestFocus(target != null ? target : myFrame); } } diff --git a/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java b/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java index 8d2aca5b48ae..e2024107fcea 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/Switcher.java @@ -717,7 +717,7 @@ public class Switcher extends AnAction implements DumbAware { if (selectedList.getModel().getSize() == 0) { focusTarget = selectedList == files ? toolWindows : files; } - focusManager.requestFocus(focusTarget, true); + focusManager.requestFocus(focusTarget); } }, 300); if (jList.getModel().getSize() == 1) { @@ -803,7 +803,7 @@ public class Switcher extends AnAction implements DumbAware { files.setSelectedIndex(index); files.ensureIndexIsVisible(index); toolWindows.getSelectionModel().clearSelection(); - IdeFocusManager.findInstanceByComponent(files).requestFocus(files, true); + IdeFocusManager.findInstanceByComponent(files).requestFocus(files); } } } @@ -820,7 +820,7 @@ public class Switcher extends AnAction implements DumbAware { if (toolWindows.getModel().getSize() > 0) { toolWindows.setSelectedIndex(Math.min(files.getSelectedIndex(), toolWindows.getModel().getSize() - 1)); files.getSelectionModel().clearSelection(); - IdeFocusManager.findInstanceByComponent(toolWindows).requestFocus(toolWindows, true); + IdeFocusManager.findInstanceByComponent(toolWindows).requestFocus(toolWindows); } } } @@ -839,7 +839,7 @@ public class Switcher extends AnAction implements DumbAware { list.setSelectedIndex(index); list.ensureIndexIsVisible(index); if (selected != list) { - IdeFocusManager.findInstanceByComponent(list).requestFocus(list, true); + IdeFocusManager.findInstanceByComponent(list).requestFocus(list); } } @@ -1081,7 +1081,7 @@ public class Switcher extends AnAction implements DumbAware { protected void selectElement(final Object element, String selectedText) { if (element instanceof FileInfo) { if (!toolWindows.isSelectionEmpty()) toolWindows.clearSelection(); - IdeFocusManager.findInstanceByComponent(files).requestFocus(files, true).doWhenDone(new Runnable() { + IdeFocusManager.findInstanceByComponent(files).requestFocus(files).doWhenDone(new Runnable() { @Override public void run() { files.setSelectedValue(element, true); @@ -1090,7 +1090,7 @@ public class Switcher extends AnAction implements DumbAware { } else { if (!files.isSelectionEmpty()) files.clearSelection(); - IdeFocusManager.findInstanceByComponent(toolWindows).requestFocus(toolWindows, true).doWhenDone(new Runnable() { + IdeFocusManager.findInstanceByComponent(toolWindows).requestFocus(toolWindows).doWhenDone(new Runnable() { @Override public void run() { toolWindows.setSelectedValue(element, true); diff --git a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java index 6a35377e6d52..b35a5ef16dd5 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/ProjectUtil.java @@ -286,7 +286,7 @@ public class ProjectUtil { AppIcon.getInstance().requestFocus((IdeFrame)WindowManager.getInstance().getFrame(p)); cmd.run(); } else { - IdeFocusManager.getInstance(p).requestFocus(cmd, true); + IdeFocusManager.getInstance(p).requestFocus(cmd); } } diff --git a/platform/platform-impl/src/com/intellij/ide/util/GotoLineNumberDialog.java b/platform/platform-impl/src/com/intellij/ide/util/GotoLineNumberDialog.java index 2cfe3ec9266a..4e3c0513a47c 100644 --- a/platform/platform-impl/src/com/intellij/ide/util/GotoLineNumberDialog.java +++ b/platform/platform-impl/src/com/intellij/ide/util/GotoLineNumberDialog.java @@ -54,7 +54,7 @@ public class GotoLineNumberDialog extends DialogWrapper { myEditor.getCaretModel().moveToLogicalPosition(position); myEditor.getScrollingModel().scrollToCaret(ScrollType.CENTER); myEditor.getSelectionModel().removeSelection(); - IdeFocusManager.getGlobalInstance().requestFocus(myEditor.getContentComponent(), true); + IdeFocusManager.getGlobalInstance().requestFocus(myEditor.getContentComponent()); super.doOKAction(); } diff --git a/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesAction.java b/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesAction.java index 5af732fbb0ef..e19e6b6233c2 100644 --- a/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesAction.java +++ b/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesAction.java @@ -52,7 +52,7 @@ public class FocusTracesAction extends AnAction implements DumbAware { @Override public void eventDispatched(AWTEvent event) { if (event instanceof FocusEvent && event.getID() == FocusEvent.FOCUS_GAINED) { - focusManager.recordFocusRequest(((FocusEvent)event).getComponent(), false); + focusManager.recordFocusRequest(((FocusEvent)event).getComponent(), new Exception()); } } }; diff --git a/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesDialog.java b/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesDialog.java index d842e274cf7d..bf7b2b5c9b94 100644 --- a/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesDialog.java +++ b/platform/platform-impl/src/com/intellij/internal/focus/FocusTracesDialog.java @@ -47,7 +47,7 @@ import java.util.List; public class FocusTracesDialog extends DialogWrapper { private final JBTable myRequestsTable; private final List myRequests; - private static final String[] COLUMNS = {"Time", "Forced", "Component"}; + private static final String[] COLUMNS = {"Time", "Component"}; private final ConsoleView consoleView; public FocusTracesDialog(Project project, ArrayList requests) { @@ -57,7 +57,7 @@ public class FocusTracesDialog extends DialogWrapper { final String[][] data = new String[requests.size()][]; for (int i = 0; i < data.length; i++) { final FocusRequestInfo r = requests.get(i); - data[i] = new String[]{r.getDate(), String.valueOf(r.isForced()), String.valueOf(r.getComponent())}; + data[i] = new String[]{r.getDate(), String.valueOf(r.getComponent())}; } setModal(false); myRequestsTable = new JBTable(new DefaultTableModel(data, COLUMNS) { diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java index 1ccf842898cd..514e6e56f542 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java @@ -215,7 +215,7 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid public void actionPerformed(AnActionEvent e) { if (getEditor1() != null && getEditor2() != null) { Editor focus = getEditor1().getContentComponent().hasFocus() ? getEditor2() : getEditor1(); - IdeFocusManager.getGlobalInstance().requestFocus(focus.getContentComponent(), true); + IdeFocusManager.getGlobalInstance().requestFocus(focus.getContentComponent()); focus.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); } } @@ -701,7 +701,7 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid if (isEditor1Focused || isEditor2Focused) { Editor e = isEditor2Focused ? getEditor2() : getEditor1(); if (e != null) { - fm.requestFocus(e.getContentComponent(), true); + fm.requestFocus(e.getContentComponent()); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index cdc2d8b84778..80094da60868 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -4392,7 +4392,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private void requestFocus() { final IdeFocusManager focusManager = IdeFocusManager.getInstance(myProject); if (focusManager.getFocusOwner() != myEditorComponent) { //IDEA-64501 - focusManager.requestFocus(myEditorComponent, true); + focusManager.requestFocus(myEditorComponent); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java index d6320f5d290b..7e8e666c3145 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java @@ -359,7 +359,7 @@ public final class EditorTabbedContainer implements Disposable, CloseAction.Clos public void requestFocus(boolean forced) { if (myTabs != null) { - IdeFocusManager.getInstance(myProject).requestFocus(myTabs.getComponent(), forced); + IdeFocusManager.getInstance(myProject).requestFocus(myTabs.getComponent()); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java index cbc8a0f1fb62..9c0b7593c7c4 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java @@ -251,7 +251,7 @@ public class EditorWindow { JComponent otherComponent = splitter.getOtherComponent(myPanel); if (otherComponent != null) { - IdeFocusManager.findInstance().requestFocus(otherComponent, true); + IdeFocusManager.findInstance().requestFocus(otherComponent); } } @@ -505,7 +505,7 @@ public class EditorWindow { else { EditorWithProviderComposite editor = getSelectedEditor(); JComponent preferred = editor == null ? null : editor.getPreferredFocusedComponent(); - IdeFocusManager.findInstanceByComponent(preferred == null ? myPanel : preferred).requestFocus(myPanel, forced); + IdeFocusManager.findInstanceByComponent(preferred == null ? myPanel : preferred).requestFocus(myPanel); } } @@ -537,7 +537,7 @@ public class EditorWindow { if (!TComp.this.hasFocus()) return; final JComponent focus = myEditor.getSelectedEditorWithProvider().getFirst().getPreferredFocusedComponent(); if (focus != null && !focus.hasFocus()) { - IdeFocusManager.getGlobalInstance().requestFocus(focus, true); + IdeFocusManager.getGlobalInstance().requestFocus(focus); } } }); diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java index d0b74234546d..f3c938deddb5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java @@ -277,7 +277,7 @@ final class SettingsEditor extends AbstractEditor implements DataProvider { public void run() { JComponent component = myEditor.getPreferredFocusedComponent(); if (component != null) { - IdeFocusManager.findInstanceByComponent(component).requestFocus(component, true); + IdeFocusManager.findInstanceByComponent(component).requestFocus(component); } } }); diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsFilter.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsFilter.java index 248eb2a42fdf..0055904610d5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsFilter.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsFilter.java @@ -63,7 +63,7 @@ abstract class SettingsFilter extends ElementFilter.Active.Impl { // request focus if needed on changing the filter text IdeFocusManager manager = IdeFocusManager.findInstanceByComponent(mySearch); if (manager.getFocusedDescendantFor(mySearch) == null) { - manager.requestFocus(mySearch, true); + manager.requestFocus(mySearch); } } }); diff --git a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressDialog.java b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressDialog.java index ce1264b644bc..e2c9bb7c1a57 100644 --- a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressDialog.java @@ -331,7 +331,7 @@ class ProgressDialog implements Disposable { } } - myProgressWindow.getFocusManager().requestFocus(myCancelButton, true).doWhenDone(myRepaintRunnable); + myProgressWindow.getFocusManager().requestFocus(myCancelButton).doWhenDone(myRepaintRunnable); } } }); diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java b/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java index e18e48f55fd5..3f134f7e809d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/FrameWrapper.java @@ -148,7 +148,7 @@ public class FrameWrapper implements Disposable, DataProvider { } if (toFocus != null) { - fm.requestFocus(toFocus, true).notify(myFocusedCallback); + fm.requestFocus(toFocus).notify(myFocusedCallback); } else { myFocusedCallback.setRejected(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java index 63e028c809de..0071f919820c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java @@ -999,7 +999,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra if (toFocus != null) { if (isShowing() && isActive()) { - getFocusManager().requestFocus(toFocus, true); + getFocusManager().requestFocus(toFocus); notifyFocused(wrapper); } } else { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java index 3e50443a24cd..1302c5867cb6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java @@ -86,7 +86,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { private final EdtAlarm myForcedFocusRequestsAlarm; private final SimpleTimer myTimer = SimpleTimer.newInstance("FocusManager timer"); - + private final EdtAlarm myIdleAlarm; private final Set myIdleRequests = new LinkedHashSet(); @@ -194,17 +194,54 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { @Override @NotNull + public ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace) { + return requestFocus(new FocusCommand.ByComponent(c, creationTrace)); + } + + @Override + @NotNull + public ActionCallback requestFocus(@NotNull final Component c) { + return requestFocus(new FocusCommand.ByComponent(c, new Exception())); + } + + @Override + @NotNull + public ActionCallback requestFocus(@NotNull final FocusCommand command) { + assertDispatchThread(); + + if (isInternalMode) { + recordCommand(command, command.getAllocation()); + } + final ActionCallback result = new ActionCallback(); + + myActivityMonitor.addActivity(FOCUS, ModalityState.any()); + _requestFocus(command, result); + + result.doWhenProcessed(new Runnable() { + @Override + public void run() { + restartIdleAlarm(); + } + }); + + return result; + } + + @Override + @Deprecated + @NotNull public ActionCallback requestFocus(@NotNull final Component c, final boolean forced) { return requestFocus(new FocusCommand.ByComponent(c, new Exception()), forced); } @Override + @Deprecated @NotNull public ActionCallback requestFocus(@NotNull final FocusCommand command, final boolean forced) { assertDispatchThread(); if (isInternalMode) { - recordCommand(command, new Throwable(), forced); + recordCommand(command, new Throwable()); } final ActionCallback result = new ActionCallback(); @@ -224,12 +261,12 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { @Override public void run() { resetUnforcedCommand(command); - _requestFocus(command, forced, result); + _requestFocus(command, result); } }); } else { - _requestFocus(command, forced, result); + _requestFocus(command, result); } result.doWhenProcessed(new Runnable() { @@ -247,95 +284,84 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { return myRequests; } - public void recordFocusRequest(Component c, boolean forced) { - myRequests.add(new FocusRequestInfo(c, new Throwable(), forced)); + public void recordFocusRequest(Component c, @NotNull Throwable causeTrace) { + myRequests.add(new FocusRequestInfo(c, causeTrace)); if (myRequests.size() > 200) { myRequests.removeFirst(); } } - private void recordCommand(@NotNull FocusCommand command, @NotNull Throwable trace, boolean forced) { + private void recordCommand(@NotNull FocusCommand command, @NotNull Throwable trace) { if (FocusTracesAction.isActive()) { - recordFocusRequest(command.getDominationComponent(), forced); + recordFocusRequest(command.getDominationComponent(), trace); } } - private void _requestFocus(@NotNull final FocusCommand command, final boolean forced, @NotNull final ActionCallback result) { + private void _requestFocus(@NotNull final FocusCommand command, @NotNull final ActionCallback result) { result.doWhenProcessed(new Runnable() { @Override public void run() { maybeRemoveFocusActivity(); } }); - - if (checkForRejectOrByPass(command, forced, result)) return; + + if (checkForRejectOrByPass(command, result)) return; setCommand(command); command.setCallback(result); - if (forced) { - myForcedFocusRequestsAlarm.cancelAllRequests(); - setLastEffectiveForcedRequest(command); + myForcedFocusRequestsAlarm.cancelAllRequests(); + setLastEffectiveForcedRequest(command); + + if (checkForRejectOrByPass(command, result)) return; + + if (myRequestFocusCmd == command) { + final TimedOutCallback focusTimeout = + new TimedOutCallback(Registry.intValue("actionSystem.commandProcessingTimeout"), + "Focus command timed out, cmd=" + command, command.getAllocation(), true) { + @Override + protected void onTimeout() { + forceFinishFocusSettleDown(command, result); + } + }; + + if (command.invalidatesRequestors()) { + myCmdTimestamp++; + } + revalidateFurtherRequestors(); + if (command.invalidatesRequestors()) { + myForcedCmdTimestamp++; + } + revalidateFurtherRequestors(); + + command.run().doWhenDone(new Runnable() { + @Override + public void run() { + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + resetCommand(command, false); + result.setDone(); + } + }); + } + }).doWhenRejected(new Runnable() { + @Override + public void run() { + result.setRejected(); + resetCommand(command, true); + } + }).doWhenProcessed(new Runnable() { + @Override + public void run() { + myForcedFocusRequestsAlarm.addRequest(new SetLastEffectiveRunnable(), 250); + } + }).notify(focusTimeout); + } + else { + rejectCommand(command, result); } - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (checkForRejectOrByPass(command, forced, result)) return; - - if (myRequestFocusCmd == command) { - final TimedOutCallback focusTimeout = - new TimedOutCallback(Registry.intValue("actionSystem.commandProcessingTimeout"), - "Focus command timed out, cmd=" + command, command.getAllocation(), true) { - @Override - protected void onTimeout() { - forceFinishFocusSettleDown(command, result); - } - }; - - if (command.invalidatesRequestors()) { - myCmdTimestamp++; - } - revalidateFurtherRequestors(); - if (forced) { - if (command.invalidatesRequestors()) { - myForcedCmdTimestamp++; - } - revalidateFurtherRequestors(); - } - - command.setForced(forced); - command.run().doWhenDone(new Runnable() { - @Override - public void run() { - UIUtil.invokeLaterIfNeeded(new Runnable() { - @Override - public void run() { - resetCommand(command, false); - result.setDone(); - } - }); - } - }).doWhenRejected(new Runnable() { - @Override - public void run() { - result.setRejected(); - resetCommand(command, true); - } - }).doWhenProcessed(new Runnable() { - @Override - public void run() { - if (forced) { - myForcedFocusRequestsAlarm.addRequest(new SetLastEffectiveRunnable(), 250); - } - } - }).notify(focusTimeout); - } - else { - rejectCommand(command, result); - } - } - }); } private void maybeRemoveFocusActivity() { @@ -344,7 +370,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { } } - private boolean checkForRejectOrByPass(@NotNull FocusCommand cmd, final boolean forced, @NotNull ActionCallback result) { + private boolean checkForRejectOrByPass(@NotNull FocusCommand cmd, @NotNull ActionCallback result) { if (cmd.isExpired()) { rejectCommand(cmd, result); return true; @@ -352,18 +378,6 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { final FocusCommand lastRequest = getLastEffectiveForcedRequest(); - if (!forced && !isUnforcedRequestAllowed()) { - if (cmd.equals(lastRequest)) { - resetCommand(cmd, false); - result.setDone(); - } - else { - rejectCommand(cmd, result); - } - return true; - } - - if (lastRequest != null && lastRequest.dominatesOver(cmd)) { rejectCommand(cmd, result); return true; @@ -640,12 +654,12 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { private boolean processFocusRevalidation() { ExpirableRunnable revalidator = myFocusRevalidator; myFocusRevalidator = null; - + if (revalidator != null && !revalidator.isExpired()) { revalidator.run(); return true; } - + return false; } @@ -661,7 +675,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { break; } } - + maybeRemoveFocusActivity(); } @@ -795,14 +809,14 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { myTypeAheadRequestors.add(done); done.notify(new TimedOutCallback(Registry.intValue("actionSystem.commandProcessingTimeout"), - "Typeahead request blocked", - new Exception() { - @Override - public String getMessage() { - return "Time: " + (System.currentTimeMillis() - currentTime); - } - }, - true).doWhenProcessed(new Runnable() { + "Typeahead request blocked", + new Exception() { + @Override + public String getMessage() { + return "Time: " + (System.currentTimeMillis() - currentTime); + } + }, + true).doWhenProcessed(new Runnable() { @Override public void run() { if (myTypeAheadRequestors.remove(done)) { @@ -868,7 +882,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { private static boolean isModalContextPopup(@NotNull JRootPane rootPane) { final JBPopup popup = (JBPopup)rootPane.getClientProperty(JBPopup.KEY); return popup != null && popup.isModalContext(); - } + } @NotNull @Override @@ -906,7 +920,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { } } } - + @Override public void revalidateFocus(@NotNull final ExpirableRunnable runnable) { SwingUtilities.invokeLater(new Runnable() { @@ -940,7 +954,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { if (permOwner != null) { result = permOwner; } - + if (UIUtil.isMeaninglessFocusOwner(result)) { result = KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow(); } @@ -1012,6 +1026,39 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { @NotNull @Override + public ActionCallback requestFocus(@NotNull Component c) { + final ActionCallback result = isExpired() ? ActionCallback.REJECTED : myManager.requestFocus(c); + result.doWhenProcessed(new Runnable() { + @Override + public void run() { + Disposer.dispose(FurtherRequestor.this); + } + }); + return result; + } + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull FocusCommand command) { + return isExpired() ? ActionCallback.REJECTED : myManager.requestFocus(command); + } + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace) { + final ActionCallback result = isExpired() ? ActionCallback.REJECTED : myManager.requestFocus(c, creationTrace); + result.doWhenProcessed(new Runnable() { + @Override + public void run() { + Disposer.dispose(FurtherRequestor.this); + } + }); + return result; + } + + @NotNull + @Override + @Deprecated public ActionCallback requestFocus(@NotNull Component c, boolean forced) { final ActionCallback result = isExpired() ? ActionCallback.REJECTED : myManager.requestFocus(c, forced); result.doWhenProcessed(new Runnable() { @@ -1029,6 +1076,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { @NotNull @Override + @Deprecated public ActionCallback requestFocus(@NotNull FocusCommand command, boolean forced) { return isExpired() ? ActionCallback.REJECTED : myManager.requestFocus(command, forced); } @@ -1042,7 +1090,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { class EdtAlarm { private final Set myRequests = new HashSet(); - + public void cancelAllRequests() { for (EdtRunnable each : myRequests) { each.expire(); @@ -1078,7 +1126,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { myCallbackOnActivation = null; if (cmd != null) { - requestFocus(cmd, true).notify(callback); + requestFocus(cmd).notify(callback); } else { focusLastFocusedComponent(ideFrame); } @@ -1086,12 +1134,12 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { @Override public void delayedApplicationDeactivated(IdeFrame ideFrame) { - final Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); - Component parent = UIUtil.findUltimateParent(owner); + final Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); + Component parent = UIUtil.findUltimateParent(owner); - if (parent == ideFrame) { - myLastFocusedAtDeactivation.put(ideFrame, owner); - } + if (parent == ideFrame) { + myLastFocusedAtDeactivation.put(ideFrame, owner); + } } private void focusLastFocusedComponent(IdeFrame ideFrame) { @@ -1108,7 +1156,7 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { if (policy != null) { policy.setNoDefaultComponent(true, FocusManagerImpl.this); } - requestFocus(c, false).doWhenProcessed(new Runnable() { + requestFocus(c).doWhenProcessed(new Runnable() { @Override public void run() { if (policy != null) { @@ -1176,16 +1224,16 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { } else if (each instanceof JWindow) { toFocus = getFocusTargetFor(((JWindow)each).getRootPane()); break; - } + } } } - } - - if (toFocus != null) { - return requestFocus(new FocusCommand.ByComponent(toFocus, new Exception()).setToInvalidateRequestors(false), forced); } - - + + if (toFocus != null) { + return requestFocus(new FocusCommand.ByComponent(toFocus, new Exception()).setToInvalidateRequestors(false)); + } + + return ActionCallback.DONE; } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusRequestInfo.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusRequestInfo.java index a1dccc18630a..183895f790c3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusRequestInfo.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusRequestInfo.java @@ -28,11 +28,9 @@ public final class FocusRequestInfo { private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("HH:mm:ss.SSS"); private final String when; private final Throwable trace; - private final boolean forced; private Component component; - public FocusRequestInfo(Component c, Throwable trace, boolean forced) { - this.forced = forced; + public FocusRequestInfo(Component c, Throwable trace) { this.trace = trace; when = DATE_FORMAT.format(new Date()); component = c; @@ -42,10 +40,6 @@ public final class FocusRequestInfo { return ExceptionUtil.getThrowableText(trace); } - public boolean isForced() { - return forced; - } - public String getDate() { return when; } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerHeadless.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerHeadless.java index 7b545578bc10..b0095929ffd5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerHeadless.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerHeadless.java @@ -35,12 +35,32 @@ public class IdeFocusManagerHeadless extends IdeFocusManager { @Override @NotNull + public ActionCallback requestFocus(@NotNull final Component c) { + return ActionCallback.DONE; + } + + @Override + @NotNull + public ActionCallback requestFocus(@NotNull final FocusCommand command) { + return ActionCallback.DONE; + } + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace) { + return ActionCallback.DONE; + } + + @Override + @NotNull + @Deprecated public ActionCallback requestFocus(@NotNull final Component c, final boolean forced) { return ActionCallback.DONE; } @Override @NotNull + @Deprecated public ActionCallback requestFocus(@NotNull final FocusCommand command, final boolean forced) { return ActionCallback.DONE; } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerImpl.java index 3199e93f5828..e6c03c2bb971 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFocusManagerImpl.java @@ -37,12 +37,32 @@ public class IdeFocusManagerImpl extends IdeFocusManager { myToolWindowManager = twManager; } + @Override + @NotNull + public ActionCallback requestFocus(@NotNull final Component c) { + return getGlobalInstance().requestFocus(c, new Throwable()); + } + + @Override + @NotNull + public ActionCallback requestFocus(@NotNull final FocusCommand command) { + return getGlobalInstance().requestFocus(command); + } + + @NotNull + @Override + public ActionCallback requestFocus(@NotNull Component c, @NotNull Throwable creationTrace) { + return getGlobalInstance().requestFocus(c, creationTrace); + } + + @Deprecated @Override @NotNull public ActionCallback requestFocus(@NotNull final Component c, final boolean forced) { return getGlobalInstance().requestFocus(c, forced); } + @Deprecated @Override @NotNull public ActionCallback requestFocus(@NotNull final FocusCommand command, final boolean forced) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java index bfab3e62e1c8..b32628c25789 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java @@ -665,6 +665,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements } else { final FocusRequestor requestor = getFocusManager().getFurtherRequestor(); + final Throwable creationTrace = new Throwable(); getFocusManager().doWhenFocusSettlesDown(new ExpirableRunnable.ForProject(myProject) { @Override public void run() { @@ -675,7 +676,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements runnable.run(); return ActionCallback.DONE; } - }.setExpirable(runnable), forced); + }.setExpirable(runnable)); } }); } @@ -726,7 +727,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements } return ActionCallback.DONE; } - }, false); + }); } } }); @@ -2485,7 +2486,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements public ActionCallback run() { return processDefaultFocusRequest(forced); } - }, forced); + }); } private void focusToolWinowByDefault(@Nullable String idToIngore) { @@ -2544,7 +2545,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements if (DialogWrapper.findInstance(toFocus) != null) { return ActionCallback.DONE; //IDEA-80929 } - return IdeFocusManager.findInstanceByComponent(toFocus).requestFocus(toFocus, forced); + return IdeFocusManager.findInstanceByComponent(toFocus).requestFocus(toFocus); } } } @@ -2557,12 +2558,12 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements */ @NotNull public ActionCallback requestFocus(@NotNull Component c, boolean forced) { - return IdeFocusManager.getInstance(myProject).requestFocus(c, forced); + return IdeFocusManager.getInstance(myProject).requestFocus(c); } @NotNull public ActionCallback requestFocus(@NotNull FocusCommand command, boolean forced) { - return IdeFocusManager.getInstance(myProject).requestFocus(command, forced); + return IdeFocusManager.getInstance(myProject).requestFocus(command); } public void doWhenFocusSettlesDown(@NotNull Runnable runnable) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInEditorComponentCmd.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInEditorComponentCmd.java index f9685ad1666c..70cf73a05b93 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInEditorComponentCmd.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInEditorComponentCmd.java @@ -26,6 +26,7 @@ import com.intellij.openapi.fileEditor.impl.EditorsSplitters; import com.intellij.openapi.util.ActionCallback; import com.intellij.openapi.util.Expirable; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.Throwable2Computable; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.openapi.wm.impl.FloatingDecorator; @@ -49,14 +50,14 @@ public final class RequestFocusInEditorComponentCmd extends FinalizableCommand{ private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.wm.impl.commands.RequestFocusInEditorComponentCmd"); + private final Throwable myCreationTrace; + public RequestFocusInEditorComponentCmd(@NotNull final EditorsSplitters splitters, IdeFocusManager focusManager, final Runnable finishCallBack, boolean forced){ super(finishCallBack); - boolean shouldLogFocuses = Registry.is("ide.log.focuses"); - if (shouldLogFocuses) { - LOG.info(new Exception()); - } + myCreationTrace = new Throwable(); + myComponent = null; final EditorWindow window = splitters.getCurrentWindow(); if (window != null) { @@ -104,7 +105,7 @@ public final class RequestFocusInEditorComponentCmd extends FinalizableCommand{ if(myComponent != null){ final boolean forced = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == null; - myFocusManager.requestFocus(myComponent, myForced || forced).notifyWhenDone(myDoneCallback).doWhenDone(new Runnable() { + myFocusManager.requestFocus(myComponent, myCreationTrace).notifyWhenDone(myDoneCallback).doWhenDone(new Runnable() { public void run() { if (SystemInfo.isLinux && Registry.is("suppress.focus.stealing")) return; // if owner is active window or it has active child window which isn't floating decorator then diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInToolWindowCmd.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInToolWindowCmd.java index 62d6cc4978a8..ff2c19cb3e0d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInToolWindowCmd.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/commands/RequestFocusInToolWindowCmd.java @@ -46,12 +46,16 @@ public final class RequestFocusInToolWindowCmd extends FinalizableCommand { private final boolean myForced; private final Expirable myTimestamp; + private final Throwable myAllocation; + public RequestFocusInToolWindowCmd(IdeFocusManager focusManager, final ToolWindowImpl toolWindow, final FocusWatcher focusWatcher, final Runnable finishCallBack, boolean forced) { super(finishCallBack); myToolWindow = toolWindow; myFocusWatcher = focusWatcher; myForced = forced; + myAllocation = new Throwable(); + myTimestamp = focusManager.getTimestamp(true); } @@ -176,7 +180,7 @@ public final class RequestFocusInToolWindowCmd extends FinalizableCommand { public ActionCallback run() { return ActionCallback.DONE; } - }, myForced).doWhenProcessed(new Runnable() { + }).doWhenProcessed(new Runnable() { @Override public void run() { updateToolWindow(c); @@ -184,7 +188,7 @@ public final class RequestFocusInToolWindowCmd extends FinalizableCommand { }).notify(result); } else { - myManager.getFocusManager().requestFocus(new FocusCommand.ByComponent(c, myToolWindow.getComponent(), new Exception()), myForced) + myManager.getFocusManager().requestFocus(new FocusCommand.ByComponent(c, myToolWindow.getComponent(), myAllocation)) .doWhenProcessed(new Runnable() { @Override public void run() { diff --git a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java index ef596f892c2a..9f5cd1fcbfe9 100644 --- a/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/BalloonImpl.java @@ -479,7 +479,7 @@ public class BalloonImpl implements Balloon, IdeTooltip.Ui { public void run() { IdeEventQueue.getInstance().disableInputMethods(BalloonImpl.this); originalFocusOwner.set(myFocusManager.getFocusOwner()); - myFocusManager.requestFocus(glassPane.getProxyComponent(), true).notify(proxyFocusRequest.get()); + myFocusManager.requestFocus(glassPane.getProxyComponent()).notify(proxyFocusRequest.get()); focusRequestor.set(myFocusManager.getFurtherRequestor()); } }); @@ -559,7 +559,7 @@ public class BalloonImpl implements Balloon, IdeTooltip.Ui { proxyFocusRequest.get().doWhenDone(new Runnable() { @Override public void run() { - myFocusManager.requestFocus(originalFocusOwner.get(), true); + myFocusManager.requestFocus(originalFocusOwner.get()); } }); } diff --git a/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java b/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java index f1581b5dcde1..b8aa647c55f0 100644 --- a/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java +++ b/platform/platform-impl/src/com/intellij/ui/FinderRecursivePanel.java @@ -227,7 +227,7 @@ public abstract class FinderRecursivePanel extends JBSplitter implements Data } private void handleGotoPrevious() { - IdeFocusManager.getInstance(myProject).requestFocus(myList, true); + IdeFocusManager.getInstance(myProject).requestFocus(myList); } private void handleGotoNext() { @@ -237,7 +237,7 @@ public abstract class FinderRecursivePanel extends JBSplitter implements Data updateRightComponent(true); } } - IdeFocusManager.getInstance(myProject).requestFocus(myList, true); + IdeFocusManager.getInstance(myProject).requestFocus(myList); } private void installListActions(JBList list) { @@ -459,7 +459,7 @@ public abstract class FinderRecursivePanel extends JBSplitter implements Data } } - IdeFocusManager.getInstance(myProject).requestFocus(panel.myList, true); + IdeFocusManager.getInstance(myProject).requestFocus(panel.myList); myUpdateSelectedPathModeActive.set(false); } diff --git a/platform/platform-impl/src/com/intellij/ui/FocusTrackback.java b/platform/platform-impl/src/com/intellij/ui/FocusTrackback.java index b9bc4de59b62..d35d65fec3c4 100644 --- a/platform/platform-impl/src/com/intellij/ui/FocusTrackback.java +++ b/platform/platform-impl/src/com/intellij/ui/FocusTrackback.java @@ -216,7 +216,7 @@ public class FocusTrackback { final IdeFocusManager focusManager = IdeFocusManager.getInstance(project); cleanParentWindow(); final Project finalProject = project; - focusManager.requestFocus(new MyFocusCommand(), myForcedRestore).doWhenProcessed(new Runnable() { + focusManager.requestFocus(new MyFocusCommand()).doWhenProcessed(new Runnable() { public void run() { dispose(); } diff --git a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java index a6903fd03646..546346efba4f 100644 --- a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentManagerImpl.java @@ -530,7 +530,7 @@ public class ContentManagerImpl implements ContentManager, PropertyChangeListene boolean enabledFocus = getFocusManager().isFocusTransferEnabled(); if (focused || requestFocus) { if (enabledFocus) { - return getFocusManager().requestFocus(myFocusProxy, true).doWhenProcessed(new Runnable() { + return getFocusManager().requestFocus(myFocusProxy).doWhenProcessed(new Runnable() { @Override public void run() { selection.run().notify(result); @@ -646,7 +646,7 @@ public class ContentManagerImpl implements ContentManager, PropertyChangeListene public ActionCallback run() { return doRequestFocus(toSelect); } - }, forced); + }); } private IdeFocusManager getFocusManager() { diff --git a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java index ec6cc41fe9f3..0e6d36e297e9 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java @@ -989,7 +989,7 @@ public class AbstractPopup implements JBPopup { return ActionCallback.DONE; } - }, true).notify(result).doWhenProcessed(new Runnable() { + }).notify(result).doWhenProcessed(new Runnable() { @Override public void run() { removeActivity(); @@ -1003,7 +1003,7 @@ public class AbstractPopup implements JBPopup { return result; } - }, true).doWhenRejected(new Runnable() { + }).doWhenRejected(new Runnable() { @Override public void run() { afterShow.run(); @@ -1025,7 +1025,7 @@ public class AbstractPopup implements JBPopup { @Override public void run() { if (isFocused()) { - IdeFocusManager.getInstance(myProject).requestFocus(prevOwner, false); + IdeFocusManager.getInstance(myProject).requestFocus(prevOwner); } } }, Registry.intValue("actionSystem.xWindow.remove.focus.from.nonFocusable.popups.delay")); @@ -1204,7 +1204,7 @@ public class AbstractPopup implements JBPopup { _requestFocus(); return ActionCallback.DONE; } - }, true); + }); return true; } diff --git a/platform/platform-impl/src/com/intellij/util/ui/ValidatingTableEditor.java b/platform/platform-impl/src/com/intellij/util/ui/ValidatingTableEditor.java index fdcb69d54a4d..ebd88db88892 100644 --- a/platform/platform-impl/src/com/intellij/util/ui/ValidatingTableEditor.java +++ b/platform/platform-impl/src/com/intellij/util/ui/ValidatingTableEditor.java @@ -285,7 +285,7 @@ public abstract class ValidatingTableEditor implements ComponentWithEmptyT myTable.scrollRectToVisible(myTable.getCellRect(row, 0, true)); if (getTableModel().getColumnInfos()[1].isCellEditable(items.get(row))) { myTable.editCellAt(row, 1); - IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(myTable.getEditorComponent(), true); + IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(myTable.getEditorComponent()); } updateMessage(-1, null); } diff --git a/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java b/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java index b491438ac5a8..b5e97c746b70 100644 --- a/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java +++ b/platform/platform-impl/src/com/intellij/util/ui/table/JBListTable.java @@ -164,7 +164,7 @@ public abstract class JBListTable { @Override public void focusGained(FocusEvent e) { IdeFocusManager focusManager = IdeFocusManager.findInstanceByComponent(p); - focusManager.requestFocus(getComponentToFocus(), true); + focusManager.requestFocus(getComponentToFocus()); } private Component getComponentToFocus() { diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java index fe2f478346ca..9d56ff99dc4d 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/SMTestRunnerResultsForm.java @@ -727,7 +727,7 @@ public class SMTestRunnerResultsForm extends TestResultsPanel // Request focus if necessary if (requestFocus) { //myTreeView.requestFocusInWindow(); - IdeFocusManager.getInstance(myProject).requestFocus(myTreeView, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTreeView); } } }); diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/statistics/StatisticsPanel.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/statistics/StatisticsPanel.java index 564a26ce29e8..348c5e191784 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/statistics/StatisticsPanel.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/ui/statistics/StatisticsPanel.java @@ -193,7 +193,7 @@ public class StatisticsPanel implements DataProvider { public void run() { // Select tab if focus was requested if (requestFocus) { - IdeFocusManager.getInstance(myProject).requestFocus(myStatisticsTableView, true); + IdeFocusManager.getInstance(myProject).requestFocus(myStatisticsTableView); } // Select proxy in table diff --git a/platform/testRunner/src/com/intellij/execution/testframework/export/ExportTestResultsForm.java b/platform/testRunner/src/com/intellij/execution/testframework/export/ExportTestResultsForm.java index c49df8b5e8ac..3b87777b7883 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/export/ExportTestResultsForm.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/export/ExportTestResultsForm.java @@ -109,7 +109,7 @@ public class ExportTestResultsForm { b = myCustomTemplateRb; } b.setSelected(true); - IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(b, true); + IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(b); myFolderField.setText(defaultFolder); myCustomTemplateField.setText(FileUtil.toSystemDependentName(StringUtil.notNullize(config.getUserTemplatePath()))); myOpenExportedFileCb.setSelected(config.isOpenResults()); @@ -129,7 +129,7 @@ public class ExportTestResultsForm { private void updateOnFormatChange() { if (getExportFormat() == ExportTestResultsConfiguration.ExportFormat.UserTemplate) { myCustomTemplateField.setEnabled(true); - IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(myCustomTemplateField.getChildComponent(), true); + IdeFocusManager.findInstanceByComponent(myContentPane).requestFocus(myCustomTemplateField.getChildComponent()); } else { myCustomTemplateField.setEnabled(false); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangeListChooserPanel.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangeListChooserPanel.java index 363d5f1e319f..04ca93f2470e 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangeListChooserPanel.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangeListChooserPanel.java @@ -106,7 +106,7 @@ public class ChangeListChooserPanel extends JPanel { @Override public void focusGained(FocusEvent e) { if (myRbNew.isSelected()) { - IdeFocusManager.getInstance(myProject).requestFocus(myNewListPanel.getPreferredFocusedComponent(), true); + IdeFocusManager.getInstance(myProject).requestFocus(myNewListPanel.getPreferredFocusedComponent()); } } }); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java index 16236e5f15a4..18d57477983a 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java @@ -315,7 +315,7 @@ public class CommitChangeListDialog extends DialogWrapper implements CheckinProj ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { - IdeFocusManager.findInstance().requestFocus(myBrowser.getViewer().getPreferredFocusedComponent(), true); + IdeFocusManager.findInstance().requestFocus(myBrowser.getViewer().getPreferredFocusedComponent()); } }); } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java index bb8847f8673e..64e72e4d3d03 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogManager.java @@ -112,7 +112,7 @@ public class VcsLogManager implements Disposable { // todo fix selection final VcsLogGraphTable graphTable = myUi.getTable(); if (graphTable.getRowCount() > 0) { - IdeFocusManager.getInstance(myProject).requestFocus(graphTable, true).doWhenProcessed(new Runnable() { + IdeFocusManager.getInstance(myProject).requestFocus(graphTable).doWhenProcessed(new Runnable() { @Override public void run() { graphTable.setRowSelectionInterval(0, 0); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XLightBreakpointPropertiesPanel.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XLightBreakpointPropertiesPanel.java index 882a2c1bc36e..20f6efa7752c 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XLightBreakpointPropertiesPanel.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/XLightBreakpointPropertiesPanel.java @@ -209,7 +209,7 @@ public class XLightBreakpointPropertiesPanel> i compToFocus = myActionsPanel.getDefaultFocusComponent(); } if (compToFocus != null) { - IdeFocusManager.findInstance().requestFocus(compToFocus, false); + IdeFocusManager.findInstance().requestFocus(compToFocus); } } }); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java index 49947040683e..e76ce65d57ba 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/XDebuggerEvaluationDialog.java @@ -123,7 +123,7 @@ public class XDebuggerEvaluationDialog extends DialogWrapper { new AnAction() { @Override public void actionPerformed(AnActionEvent e) { - IdeFocusManager.getInstance(mySession.getProject()).requestFocus(myTreePanel.getTree(), true); + IdeFocusManager.getInstance(mySession.getProject()).requestFocus(myTreePanel.getTree()); } }.registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.ALT_DOWN_MASK)), getRootPane(), myDisposable); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java index 79197d3f7943..cce5cae99ef5 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java @@ -250,7 +250,7 @@ public class DebuggerUIUtil { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { - IdeFocusManager.findInstance().requestFocus(mainPanel, true); + IdeFocusManager.findInstance().requestFocus(mainPanel); } }); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java index 7ebd4066a39b..7d6dddaaf13f 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebuggerEditorBase.java @@ -190,7 +190,7 @@ public abstract class XDebuggerEditorBase { public void requestFocusInEditor() { JComponent preferredFocusedComponent = getPreferredFocusedComponent(); if (preferredFocusedComponent != null) { - IdeFocusManager.getInstance(myProject).requestFocus(preferredFocusedComponent, true); + IdeFocusManager.getInstance(myProject).requestFocus(preferredFocusedComponent); } } diff --git a/plugins/devkit/src/dom/generator/DomGenPanel.java b/plugins/devkit/src/dom/generator/DomGenPanel.java index 7d5229c9e64c..65b52cf4b7bf 100644 --- a/plugins/devkit/src/dom/generator/DomGenPanel.java +++ b/plugins/devkit/src/dom/generator/DomGenPanel.java @@ -156,13 +156,13 @@ public class DomGenPanel { public boolean validate() { if (!new File(mySchemaLocation.getText()).exists()) { Messages.showErrorDialog(myProject, "Schema location doesn't exist", "Error"); - IdeFocusManager.getInstance(myProject).requestFocus(mySchemaLocation, true); + IdeFocusManager.getInstance(myProject).requestFocus(mySchemaLocation); return false; } if (!new File(myOutputDir.getText()).exists()) { Messages.showErrorDialog(myProject, "Output dir doesn't exist", "Error"); - IdeFocusManager.getInstance(myProject).requestFocus(myOutputDir, true); + IdeFocusManager.getInstance(myProject).requestFocus(myOutputDir); return false; } diff --git a/plugins/git4idea/src/git4idea/push/GitPushTargetPanel.java b/plugins/git4idea/src/git4idea/push/GitPushTargetPanel.java index fa0a7882b780..acd480762f8d 100644 --- a/plugins/git4idea/src/git4idea/push/GitPushTargetPanel.java +++ b/plugins/git4idea/src/git4idea/push/GitPushTargetPanel.java @@ -215,7 +215,7 @@ public class GitPushTargetPanel extends PushTargetPanel { if (myTargetEditor.isShowing()) { //repaint and force move focus to target editor component GitPushTargetPanel.this.repaint(); - IdeFocusManager.getInstance(myProject).requestFocus(myTargetEditor, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTargetEditor); } } }; diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleModuleWizardStep.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleModuleWizardStep.java index 19948a3ee6a4..fd0f5d0e34b9 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleModuleWizardStep.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleModuleWizardStep.java @@ -146,7 +146,7 @@ public class GradleModuleWizardStep extends ModuleWizardStep { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { - IdeFocusManager.getInstance(myProjectOrNull).requestFocus(myArtifactIdField, true); + IdeFocusManager.getInstance(myProjectOrNull).requestFocus(myArtifactIdField); } }); throw new ConfigurationException("Please, specify artifactId"); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java index 182eb1bed731..81ab9e76362c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java @@ -487,7 +487,7 @@ public class DynamicToolWindowWrapper { int row = tree.getRowForPath(path); myTreeTable.getSelectionModel().setSelectionInterval(row, row); myTreeTable.scrollRectToVisible(myTreeTable.getCellRect(row, 0, true)); - IdeFocusManager.getInstance(myProject).requestFocus(myTreeTable, true); + IdeFocusManager.getInstance(myProject).requestFocus(myTreeTable); } public void removeFromParent(DefaultMutableTreeNode parent, DefaultMutableTreeNode child) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/GrDynamicImplicitProperty.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/GrDynamicImplicitProperty.java index 530c908a608b..f5686a62dc8b 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/GrDynamicImplicitProperty.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/GrDynamicImplicitProperty.java @@ -148,7 +148,7 @@ public class GrDynamicImplicitProperty extends GrImplicitVariableImpl implements treeTable.getTree().setSelectionPath(path); treeTable.getTree().fireTreeExpanded(path); - ToolWindowManager.getInstance(myProject).getFocusManager().requestFocus(treeTable, true); + ToolWindowManager.getInstance(myProject).getFocusManager().requestFocus(treeTable); treeTable.revalidate(); treeTable.repaint(); diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/CopiesPanel.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/CopiesPanel.java index 1c057eda6f3b..63350dfa2d55 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/CopiesPanel.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/CopiesPanel.java @@ -108,7 +108,7 @@ public class CopiesPanel { final Runnable focus = new Runnable() { @Override public void run() { - IdeFocusManager.getInstance(myProject).requestFocus(myRefreshLabel, true); + IdeFocusManager.getInstance(myProject).requestFocus(myRefreshLabel); } }; final Runnable refreshView = new Runnable() { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/IntersectingLocalChangesPanel.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/IntersectingLocalChangesPanel.java index 60a5d798abeb..d8646b0b3955 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/IntersectingLocalChangesPanel.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/dialogs/IntersectingLocalChangesPanel.java @@ -137,7 +137,7 @@ public class IntersectingLocalChangesPanel { ContentsUtil.addContent(contentManager, content, true); toolWindow.activate(new Runnable() { public void run() { - IdeFocusManager.getInstance(project).requestFocus(component.getPrefferedFocusComponent(), true); + IdeFocusManager.getInstance(project).requestFocus(component.getPrefferedFocusComponent()); } }); diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/AbstractTerminalRunner.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/AbstractTerminalRunner.java index 8bf81bccfc56..df65c1f8bc85 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/AbstractTerminalRunner.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/AbstractTerminalRunner.java @@ -166,7 +166,7 @@ public abstract class AbstractTerminalRunner { final ToolWindow window = ToolWindowManager.getInstance(myProject).getToolWindow(defaultExecutor.getId()); window.activate(new Runnable() { public void run() { - IdeFocusManager.getInstance(myProject).requestFocus(toFocus, true); + IdeFocusManager.getInstance(myProject).requestFocus(toFocus); } }); } diff --git a/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/PropertyTablePanel.java b/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/PropertyTablePanel.java index a44a34398d3c..5ca2b501769a 100644 --- a/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/PropertyTablePanel.java +++ b/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/PropertyTablePanel.java @@ -133,7 +133,7 @@ public final class PropertyTablePanel extends JPanel implements ListSelectionLis addMouseListener(new MouseAdapter() { public void mouseReleased(final MouseEvent e) { - IdeFocusManager.getInstance(project).requestFocus(myPropertyTable, true); + IdeFocusManager.getInstance(project).requestFocus(myPropertyTable); } }); } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyCheckAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyCheckAction.java index 3a7486a4d859..31638cdc72bb 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyCheckAction.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyCheckAction.java @@ -134,7 +134,7 @@ public class StudyCheckAction extends DumbAwareAction { } runAction.run(project); ApplicationManager.getApplication().invokeLater( - () -> IdeFocusManager.getInstance(project).requestFocus(studyState.getEditor().getComponent(), true)); + () -> IdeFocusManager.getInstance(project).requestFocus(studyState.getEditor().getComponent())); final StudyTestRunner testRunner = StudyUtils.getTestRunner(task, taskDir); Process testProcess = null; @@ -288,7 +288,7 @@ public class StudyCheckAction extends DumbAwareAction { } final Editor editorToNavigate = editor; ApplicationManager.getApplication().invokeLater( - () -> IdeFocusManager.getInstance(project).requestFocus(editorToNavigate.getContentComponent(), true)); + () -> IdeFocusManager.getInstance(project).requestFocus(editorToNavigate.getContentComponent())); StudyNavigator.navigateToFirstFailedAnswerPlaceholder(editor, taskFileToNavigate); } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java index 0cb33f2d04e9..3fa294c24324 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java @@ -77,7 +77,7 @@ public class StudyRefreshTaskFileAction extends DumbAwareAction { ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { - IdeFocusManager.getInstance(project).requestFocus(editor.getContentComponent(), true); + IdeFocusManager.getInstance(project).requestFocus(editor.getContentComponent()); } }); diff --git a/python/src/com/jetbrains/python/console/PyOpenDebugConsoleAction.java b/python/src/com/jetbrains/python/console/PyOpenDebugConsoleAction.java index de671e33464b..8fd06eaef2e0 100644 --- a/python/src/com/jetbrains/python/console/PyOpenDebugConsoleAction.java +++ b/python/src/com/jetbrains/python/console/PyOpenDebugConsoleAction.java @@ -60,7 +60,7 @@ public class PyOpenDebugConsoleAction extends AnAction implements DumbAware { @Override public void consume(PythonDebugLanguageConsoleView view) { view.enableConsole(false); - IdeFocusManager.getInstance(project).requestFocus(view.getPydevConsoleView().getComponent(), true); + IdeFocusManager.getInstance(project).requestFocus(view.getPydevConsoleView().getComponent()); } }); } diff --git a/python/src/com/jetbrains/python/console/PythonConsoleView.java b/python/src/com/jetbrains/python/console/PythonConsoleView.java index a8a18a59ec76..5d064ddba041 100644 --- a/python/src/com/jetbrains/python/console/PythonConsoleView.java +++ b/python/src/com/jetbrains/python/console/PythonConsoleView.java @@ -97,7 +97,7 @@ public class PythonConsoleView extends LanguageConsoleImpl implements Observable @Override public void requestFocus() { - IdeFocusManager.findInstance().requestFocus(getConsoleEditor().getContentComponent(), true); + IdeFocusManager.findInstance().requestFocus(getConsoleEditor().getContentComponent()); } @Override diff --git a/python/src/com/jetbrains/python/console/PythonDebugLanguageConsoleView.java b/python/src/com/jetbrains/python/console/PythonDebugLanguageConsoleView.java index 7561151b59f1..6657dc0c8359 100644 --- a/python/src/com/jetbrains/python/console/PythonDebugLanguageConsoleView.java +++ b/python/src/com/jetbrains/python/console/PythonDebugLanguageConsoleView.java @@ -71,7 +71,7 @@ public class PythonDebugLanguageConsoleView extends DuplexConsoleView