mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs] postpone saving document until non modal
^KTIJ-31597 fixed GitOrigin-RevId: d90d4daa2ca517891e9b1dff1457e8c695cc8fca
This commit is contained in:
committed by
intellij-monorepo-bot
parent
df8fd3721f
commit
26c4f80cdd
@@ -235,11 +235,12 @@ abstract class LocalLineStatusTrackerImpl<R : Range>(
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user