void () { if (myProject.isDisposed()) return; boolean enabled = shouldEnableChangeLists(); synchronized (myDataLock) { if (enabled == myWorker.areChangeListsEnabled()) return; } myProject.getMessageBus().syncPublisher(ChangeListAvailabilityListener.TOPIC).onBefore(); synchronized (myDataLock) { assert enabled != myWorker.areChangeListsEnabled(); if (!enabled) { myDisabledWorkerState = myWorker.getChangeListsImpl(); } myWorker.setChangeListsEnabled(enabled); if (enabled) { if (myDisabledWorkerState != null) { myWorker.setChangeLists(myDisabledWorkerState); } // Schedule refresh to replace FakeRevisions with actual changes VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty(); ChangesViewManager.getInstance(myProject).scheduleRefresh(); } } myProject.getMessageBus().syncPublisher(ChangeListAvailabilityListener.TOPIC).onAfter(); }