diff --git a/ide/project.pp b/ide/project.pp index bff9b2fd61..62fe74bdd4 100644 --- a/ide/project.pp +++ b/ide/project.pp @@ -606,7 +606,6 @@ type FUnitList: TFPList; // list of _all_ units (TUnitInfo) FUpdateLock: integer; FUseAppBundle: Boolean; - FInModified: Boolean; FResources: TProjectResources; function GetFirstAutoRevertLockedUnit: TUnitInfo; function GetFirstLoadedUnit: TUnitInfo; @@ -1857,7 +1856,6 @@ constructor TProject.Create(ProjectDescription: TProjectDescriptor); begin inherited Create(ProjectDescription); - FInModified := False; fActiveEditorIndexAtStart := -1; FAutoCreateForms := true; FBookmarks := TProjectBookmarkList.Create; @@ -2860,20 +2858,15 @@ end; procedure TProject.SetModified(const AValue: boolean); begin - // prevent change of modified during this chain - if FInModified then - Exit; - FInModified := True; if AValue = Modified then exit; inherited SetModified(AValue); if not Modified then begin PublishOptions.Modified := False; CompilerOptions.Modified := False; + Resources.Modified := False; SessionModified := False; - Resources.Modified := False end; - FInModified := False; end; procedure TProject.SetSessionModified(const AValue: boolean); diff --git a/ide/projectresources.pas b/ide/projectresources.pas index 5be4a01fa4..e67646a965 100644 --- a/ide/projectresources.pas +++ b/ide/projectresources.pas @@ -75,17 +75,19 @@ begin if FInModified then Exit; FInModified := True; - if FModified = AValue then exit; - FModified := AValue; - if not FModified then + if FModified <> AValue then begin - VersionInfo.Modified := False; - XPManifest.Modified := False; - ProjectIcon.Modified := False; + FModified := AValue; + if not FModified then + begin + VersionInfo.Modified := False; + XPManifest.Modified := False; + ProjectIcon.Modified := False; + end; + if Assigned(FOnModified) then + OnModified(Self); end; FInModified := False; - if Assigned(FOnModified) then - OnModified(Self); end; function TProjectResources.Update(TargetOS: String): Boolean;