From d51cae1ca081a6a26d839d72c8eb9196a7fe885e Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Sat, 12 Jan 2019 10:16:29 +0100 Subject: [PATCH] one undo transparent action and write action for all store save sessions --- platform/configuration-store-impl/src/ProjectStoreImpl.kt | 4 +++- platform/configuration-store-impl/src/SaveExecutor.kt | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/configuration-store-impl/src/ProjectStoreImpl.kt b/platform/configuration-store-impl/src/ProjectStoreImpl.kt index 0be104e3380d..c5696e2960d8 100644 --- a/platform/configuration-store-impl/src/ProjectStoreImpl.kt +++ b/platform/configuration-store-impl/src/ProjectStoreImpl.kt @@ -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) } diff --git a/platform/configuration-store-impl/src/SaveExecutor.kt b/platform/configuration-store-impl/src/SaveExecutor.kt index cab01556848e..f8700d2c42bc 100644 --- a/platform/configuration-store-impl/src/SaveExecutor.kt +++ b/platform/configuration-store-impl/src/SaveExecutor.kt @@ -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() } }