diff: prefer requestFocusInWindow() over requestFocus()

This commit is contained in:
Aleksey Pivovarov
2015-10-01 15:38:57 +03:00
parent deaac8ecf1
commit ddfa6f74fa
5 changed files with 7 additions and 5 deletions
@@ -37,7 +37,7 @@ public abstract class DiffContext implements UserDataHolder {
/**
* Request focus on diff panel ({@link FrameDiffTool.DiffViewer#getPreferredFocusedComponent()} in current viewer)
* NB: focus requested via {@link java.awt.Component#requestFocus()}, ignoring {@link com.intellij.openapi.wm.IdeFocusManager}
* NB: focus requested via {@link java.awt.Component#requestFocusInWindow()}, ignoring {@link com.intellij.openapi.wm.IdeFocusManager}
* <p/>
* This method can be used in pair with {@link #isFocused()} to keep focus on modifications of component tree
*/
@@ -341,7 +341,7 @@ public abstract class DiffRequestProcessor implements Disposable {
protected void requestFocusInternal() {
JComponent component = getPreferredFocusedComponent();
if (component != null) component.requestFocus();
if (component != null) component.requestFocusInWindow();
}
@NotNull
@@ -342,7 +342,7 @@ public abstract class MergeRequestProcessor implements Disposable {
protected void requestFocusInternal() {
JComponent component = getPreferredFocusedComponent();
if (component != null) component.requestFocus();
if (component != null) component.requestFocusInWindow();
}
//
@@ -25,6 +25,7 @@ import com.intellij.diff.tools.holders.BinaryEditorHolder;
import com.intellij.diff.tools.util.DiffNotifications;
import com.intellij.diff.tools.util.StatusPanel;
import com.intellij.diff.tools.util.side.TwosideDiffViewer;
import com.intellij.diff.util.DiffUtil;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
@@ -157,7 +158,7 @@ public class TwosideBinaryDiffViewer extends TwosideDiffViewer<BinaryEditorHolde
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
setCurrentSide(getCurrentSide().other());
myContext.requestFocus();
DiffUtil.requestFocus(getProject(), getPreferredFocusedComponent());
}
}
}
@@ -329,8 +329,9 @@ public abstract class TwosideTextDiffViewer extends TwosideDiffViewer<TextEditor
}
setCurrentSide(targetSide);
myContext.requestFocus();
currentEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
DiffUtil.requestFocus(getProject(), getPreferredFocusedComponent());
}
}