ensure smartInvokeLater runnable doesn't get invoked in a wrong modality state

This commit is contained in:
peter
2016-04-07 16:18:15 +02:00
parent fb2bf3fa6e
commit 90ebb4e467
@@ -411,25 +411,16 @@ public class DumbServiceImpl extends DumbService implements Disposable, Modifica
@Override
public void smartInvokeLater(@NotNull final Runnable runnable) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
runWhenSmart(runnable);
}
@Override
public String toString() {
return runnable.toString();
}
}, myProject.getDisposed());
smartInvokeLater(runnable, ModalityState.defaultModalityState());
}
@Override
public void smartInvokeLater(@NotNull final Runnable runnable, @NotNull ModalityState modalityState) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
runWhenSmart(runnable);
ApplicationManager.getApplication().invokeLater(() -> {
if (isDumb()) {
runWhenSmart(() -> smartInvokeLater(runnable, modalityState));
} else {
runnable.run();
}
}, modalityState, myProject.getDisposed());
}