one undo transparent action and write action for all store save sessions

This commit is contained in:
Vladimir Krivosheev
2019-01-12 10:42:00 +01:00
parent 4399e4fb19
commit d51cae1ca0
2 changed files with 6 additions and 2 deletions
@@ -6,6 +6,8 @@ import com.intellij.ide.highlighter.WorkspaceFileType
import com.intellij.openapi.application.AppUIExecutor
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.async.coroutineDispatchingContext
import com.intellij.openapi.application.async.inUndoTransparentAction
import com.intellij.openapi.application.async.inWriteAction
import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.components.*
import com.intellij.openapi.components.impl.stores.IComponentStore
@@ -370,7 +372,7 @@ private class ProjectWithModulesStoreImpl(project: Project, pathMacroManager: Pa
}
if (!saveSessions.isEmpty()) {
ApplicationManager.getApplication().runWriteAction {
withContext(AppUIExecutor.onUiThread().inUndoTransparentAction().inWriteAction().coroutineDispatchingContext()) {
// flush on disk
saveSessions(saveSessions, readonlyFiles, errors)
}
@@ -3,6 +3,8 @@ package com.intellij.configurationStore
import com.intellij.openapi.application.AppUIExecutor
import com.intellij.openapi.application.async.coroutineDispatchingContext
import com.intellij.openapi.application.async.inUndoTransparentAction
import com.intellij.openapi.application.async.inWriteAction
import com.intellij.openapi.components.StateStorage
import com.intellij.openapi.components.impl.stores.SaveSessionAndFile
import com.intellij.openapi.progress.ProcessCanceledException
@@ -63,7 +65,7 @@ internal open class SaveSessionProducerManager : SaveExecutor {
val task = { saveSessions(saveSessions, readonlyFiles, errors) }
if (isVfsRequired) {
withContext(AppUIExecutor.onUiThread().coroutineDispatchingContext()) {
withContext(AppUIExecutor.onUiThread().inUndoTransparentAction().inWriteAction().coroutineDispatchingContext()) {
task()
}
}