diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/table/VcsLogGraphTable.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/table/VcsLogGraphTable.java index db21437be5dd..27916b0b4a7d 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/table/VcsLogGraphTable.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/table/VcsLogGraphTable.java @@ -30,6 +30,7 @@ import com.intellij.openapi.util.Couple; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.vcs.VcsDataKeys; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.ui.ColoredTableCellRenderer; import com.intellij.ui.JBColor; import com.intellij.ui.ScrollingUtil; @@ -443,6 +444,9 @@ public class VcsLogGraphTable extends TableWithProgress implements DataProvider, if (rowIndex >= 0 && rowIndex <= getRowCount() - 1) { scrollRectToVisible(getCellRect(rowIndex, 0, false)); setRowSelectionInterval(rowIndex, rowIndex); + if (!hasFocus()) { + IdeFocusManager.getInstance(myLogData.getProject()).requestFocus(this, true); + } } } diff --git a/plugins/git4idea/src/git4idea/log/GitShowCommitInLogAction.java b/plugins/git4idea/src/git4idea/log/GitShowCommitInLogAction.java index 00941419f181..53ab06fb44c9 100644 --- a/plugins/git4idea/src/git4idea/log/GitShowCommitInLogAction.java +++ b/plugins/git4idea/src/git4idea/log/GitShowCommitInLogAction.java @@ -17,7 +17,6 @@ package git4idea.log; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.PerformInBackgroundOption; import com.intellij.openapi.progress.ProgressIndicator; @@ -30,7 +29,6 @@ import com.intellij.openapi.vcs.VcsDataKeys; import com.intellij.openapi.vcs.VcsKey; import com.intellij.openapi.vcs.history.VcsFileRevision; import com.intellij.openapi.vcs.history.VcsRevisionNumber; -import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.vcs.log.impl.VcsLogContentUtil; import com.intellij.vcs.log.impl.VcsProjectLog; import com.intellij.vcs.log.ui.VcsLogUiImpl; @@ -100,7 +98,6 @@ public class GitShowCommitInLogAction extends DumbAwareAction { public void run(@NotNull ProgressIndicator indicator) { try { future.get(); - ApplicationManager.getApplication().invokeLater(() -> ensureHasFocus(project, logUi)); } catch (CancellationException | InterruptedException ignored) { } @@ -110,14 +107,5 @@ public class GitShowCommitInLogAction extends DumbAwareAction { } }); } - else { - ensureHasFocus(project, logUi); - } - } - - private static void ensureHasFocus(@Nullable Project project, @NotNull VcsLogUiImpl logUi) { - if (!logUi.getTable().hasFocus()) { - IdeFocusManager.getInstance(project).requestFocus(logUi.getTable(), true); - } } }