|
@@ -836,15 +836,27 @@ void __fastcall TEditorForm::SaveFile()
|
|
if (IsFileModified())
|
|
if (IsFileModified())
|
|
{
|
|
{
|
|
DebugAssert(!FFileName.IsEmpty());
|
|
DebugAssert(!FFileName.IsEmpty());
|
|
- SaveToFile();
|
|
|
|
- if (FOnFileChanged)
|
|
|
|
|
|
+ FSaving = true;
|
|
|
|
+ UpdateControls(); // It does not redraw the status bar anyway
|
|
|
|
+ bool Direct = (FOnFileChanged == NULL);
|
|
|
|
+ try
|
|
{
|
|
{
|
|
- FOnFileChanged(this);
|
|
|
|
|
|
+ SaveToFile();
|
|
|
|
+ if (!Direct)
|
|
|
|
+ {
|
|
|
|
+ FOnFileChanged(this);
|
|
|
|
+ }
|
|
|
|
+ EditorMemo->Modified = false;
|
|
|
|
+ NewFile = false;
|
|
|
|
+ }
|
|
|
|
+ __finally
|
|
|
|
+ {
|
|
|
|
+ if (Direct)
|
|
|
|
+ {
|
|
|
|
+ FSaving = false;
|
|
|
|
+ }
|
|
|
|
+ UpdateControls();
|
|
}
|
|
}
|
|
- FSaving = true;
|
|
|
|
- EditorMemo->Modified = false;
|
|
|
|
- NewFile = false;
|
|
|
|
- UpdateControls();
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|