From c688ac6cb437214ffd8d3302c83fa59268c1866f Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 29 Mar 2018 15:38:29 +0300 Subject: [PATCH] diff: do not hide focused viewer if there are no more changes in a tree --- .../ChangeViewDiffRequestProcessor.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeViewDiffRequestProcessor.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeViewDiffRequestProcessor.java index a2d600874139..cb73ce268ab6 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeViewDiffRequestProcessor.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ChangeViewDiffRequestProcessor.java @@ -143,21 +143,25 @@ public abstract class ChangeViewDiffRequestProcessor extends CacheDiffRequestPro public void refresh() { List selectedChanges = getSelectedChanges(); + Wrapper selectedChange = myCurrentChange != null ? ContainerUtil.find(selectedChanges, myCurrentChange) : null; + if (selectedChange == null && + myCurrentChange != null && + getContext().isWindowFocused() && + getContext().isFocusedInWindow()) { + // Do not automatically switch focused viewer + if (selectedChanges.size() == 1 && getAllChanges().contains(myCurrentChange)) { + selectChange(myCurrentChange); // Restore selection if necessary + } + return; + } + if (selectedChanges.isEmpty()) { myCurrentChange = null; updateRequest(); return; } - Wrapper selectedChange = myCurrentChange != null ? ContainerUtil.find(selectedChanges, myCurrentChange) : null; if (selectedChange == null) { - if (myCurrentChange != null && getContext().isWindowFocused() && getContext().isFocusedInWindow()) { // Do not automatically switch file if focused - if (selectedChanges.size() == 1 && getAllChanges().contains(myCurrentChange)) { - selectChange(myCurrentChange); // Restore selection if necessary - } - return; - } - myCurrentChange = selectedChanges.get(0); updateRequest(); return;