From 26c4f80cddcd9ecdc80a6566ce57939e174d64d1 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 10 Oct 2024 14:00:46 +0200 Subject: [PATCH] [vcs] postpone saving document until non modal ^KTIJ-31597 fixed GitOrigin-RevId: d90d4daa2ca517891e9b1dff1457e8c695cc8fca --- .../src/com/intellij/openapi/vcs/ex/LineStatusTracker.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/LineStatusTracker.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/LineStatusTracker.kt index d8d4d3f2d9df..6ce79f1b576d 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/LineStatusTracker.kt +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/ex/LineStatusTracker.kt @@ -235,11 +235,12 @@ abstract class LocalLineStatusTrackerImpl( fun saveDocumentWhenUnchanged(project: Project, document: Document) { if (GeneralSettings.getInstance().isSaveOnFrameDeactivation) { // Use 'invokeLater' to avoid saving inside document change event processing and deadlock with CLM. - // Override ANY modality (that is abused by LineStatusTrackerManager) to prevent errors in TransactionGuard. - var modalityState = ModalityState.defaultModalityState() - if (modalityState == ModalityState.any()) modalityState = ModalityState.nonModal() + if (ModalityState.current() != ModalityState.nonModal()) { + println("Saving document from non-modal") + Throwable().printStackTrace() + } ApplicationManager.getApplication().invokeLater(Runnable { FileDocumentManager.getInstance().saveDocument(document) - }, modalityState, project.disposed) + }, ModalityState.nonModal(), project.disposed) } }