diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java
index 5d1cf97c8d3c..49aa66311e93 100644
--- a/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java
+++ b/platform/lang-impl/src/com/intellij/find/impl/FindPopupPanel.java
@@ -54,6 +54,7 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.openapi.wm.WindowManager;
import com.intellij.openapi.wm.impl.IdeFrameImpl;
import com.intellij.psi.PsiBundle;
@@ -267,6 +268,24 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myCbFileFilter.setToolTipText("Use file mask(s)");
myCbFileFilter.setMargin(JBUI.emptyInsets());
myCbFileFilter.setBorder(null);
+ myCbFileFilter.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ if (myCbFileFilter.isSelected()) {
+ myFileMaskField.setEnabled(true);
+ if (myCbFileFilter.getClientProperty("dontRequestFocus") == null) {
+ myFileMaskField.selectAll();
+ IdeFocusManager.getInstance(myProject).requestFocus(myFileMaskField, true);
+ }
+ }
+ else {
+ myFileMaskField.setEnabled(false);
+ if (myCbFileFilter.getClientProperty("dontRequestFocus") == null) {
+ IdeFocusManager.getInstance(myProject).requestFocus(mySearchComponent, true);
+ }
+ }
+ }
+ });
myCbFileFilter.addItemListener(liveResultsPreviewUpdateListener);
myFileMaskField =
new TextFieldWithAutoCompletion(myProject, new TextFieldWithAutoCompletion.StringsCompletionProvider(myFileMasks, null),
@@ -284,12 +303,6 @@ public class FindPopupPanel extends JBPanel implements FindUI {
scheduleResultsUpdate();
}
});
- myCbFileFilter.addItemListener(new ItemListener() {
- @Override
- public void itemStateChanged(ItemEvent e) {
- myFileMaskField.setEnabled(myCbFileFilter.isSelected());
- }
- });
DefaultActionGroup switchContextGroup = new DefaultActionGroup();
switchContextGroup.add(new MySwitchContextToggleAction(FindModel.SearchContext.ANY));
switchContextGroup.add(new MySwitchContextToggleAction(FindModel.SearchContext.IN_COMMENTS));
@@ -587,21 +600,23 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myCodePreviewComponent = myUsagePreviewPanel.createComponent();
splitter.setSecondComponent(myCodePreviewComponent);
+ JPanel scopesPanel = new JPanel(new MigLayout("flowx, gap 26, ins 0"));
+ scopesPanel.add(myScopeSelectionToolbar.getComponent());
+ scopesPanel.add(myScopeDetailsPanel);
setLayout(new MigLayout("flowx, ins 4, fillx, hidemode 2, gap 0"));
add(myTitleLabel, "gapleft 4, sx 2, growx, pushx, growy");
- add(myCbCaseSensitive);
- add(myCbPreserveCase);
- add(myCbWholeWordsOnly);
+ add(myCbCaseSensitive, "gapright 8");
+ add(myCbPreserveCase, "gapright 8");
+ add(myCbWholeWordsOnly, "gapright 8");
add(myCbRegularExpressions);
add(RegExHelpPopup.createRegExLink("?", myCbRegularExpressions, LOG), "gapright 8");
add(myCbFileFilter);
- add(myFileMaskField);
+ add(myFileMaskField, "gapright 8");
add(myFilterContextButton, "wrap");
add(mySearchTextArea, "pushx, growx, sx 10, gaptop 4, wrap");
add(myReplaceTextArea, "pushx, growx, sx 10, wrap");
- add(myScopeSelectionToolbar.getComponent(), "gaptop 4");
- add(myScopeDetailsPanel, "sx 9, pushx, growx, wrap");
+ add(scopesPanel, "sx 10, pushx, growx, ax left, wrap, gaptop 4, gapbottom 4");
add(splitter, "pushx, growx, growy, pushy, sx 10, wrap, pad 0 -4 0 4");
add(bottomPanel, "pushx, growx, dock south, sx 10, pad 0 -4 0 4");
@@ -665,7 +680,12 @@ public class FindPopupPanel extends JBPanel implements FindUI {
myModuleComboBox.setSelectedItem(myModel.getModuleName());
}
boolean isThereFileFilter = myModel.getFileFilter() != null && !myModel.getFileFilter().isEmpty();
- myCbFileFilter.setSelected(isThereFileFilter);
+ try {
+ myCbFileFilter.putClientProperty("dontRequestFocus", Boolean.TRUE);
+ myCbFileFilter.setSelected(isThereFileFilter);
+ } finally {
+ myCbFileFilter.putClientProperty("dontRequestFocus", null);
+ }
List variants = Arrays.asList(ArrayUtil.reverseArray(FindSettings.getInstance().getRecentFileMasks()));
myFileMaskField.setVariants(variants);
if (!variants.isEmpty()) {