Do not fire empty refresh session

This commit is contained in:
Roman Shevchenko
2012-09-03 20:25:37 +04:00
parent 4ba469f76f
commit b6d1731555
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,10 +31,12 @@ import com.intellij.openapi.vfs.newvfs.NewVirtualFile;
import com.intellij.openapi.vfs.newvfs.RefreshQueue;
import com.intellij.openapi.vfs.newvfs.RefreshSession;
import com.intellij.util.Alarm;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -186,19 +188,22 @@ public class SaveAndSyncHandler implements ApplicationComponent {
}
public static void refreshOpenFiles() {
// Refresh open files synchronously so it doesn't wait for potentially longish refresh request in the queue to finish
final RefreshSession session = RefreshQueue.getInstance().createSession(false, false, null);
List<VirtualFile> files = ContainerUtil.newArrayList();
for (Project project : ProjectManagerEx.getInstanceEx().getOpenProjects()) {
VirtualFile[] files = FileEditorManager.getInstance(project).getSelectedFiles();
for (VirtualFile file : files) {
VirtualFile[] projectFiles = FileEditorManager.getInstance(project).getSelectedFiles();
for (VirtualFile file : projectFiles) {
if (file instanceof NewVirtualFile) {
session.addFile(file);
files.add(file);
}
}
}
session.launch();
if (!files.isEmpty()) {
// refresh open files synchronously so it doesn't wait for potentially longish refresh request in the queue to finish
RefreshSession session = RefreshQueue.getInstance().createSession(false, false, null);
session.addAllFiles(files);
session.launch();
}
}
public void blockSaveOnFrameDeactivation() {