diff --git a/src/ce_editor.pas b/src/ce_editor.pas index 7e8c20e2..d811dd5c 100644 --- a/src/ce_editor.pas +++ b/src/ce_editor.pas @@ -249,6 +249,7 @@ var doc: TCESynMemo; begin doc := getDocument(index); + if not assigned(doc) then exit(false); if (doc.modified or (doc.fileName = doc.tempFilename)) and (dlgFileChangeClose(fDoc.fileName) = mrCancel) then exit(false); doc.Free; @@ -261,7 +262,7 @@ end; procedure TCEEditorWidget.pageCloseBtnClick(Sender: TObject); begin PageControl.PageIndex := TTabSheet(sender).PageIndex; - if fDoc <> nil then fDoc.Free; + closeDocument(PageControl.PageIndex); end; {$ENDIF} diff --git a/src/ce_main.pas b/src/ce_main.pas index e882bb36..99a0ffea 100644 --- a/src/ce_main.pas +++ b/src/ce_main.pas @@ -1491,7 +1491,8 @@ end; procedure TCEMainForm.actFileCloseExecute(Sender: TObject); begin if fDoc = nil then exit; - if fDoc.modified and (dlgFileChangeClose(fDoc.fileName) = mrCancel) then exit; + if (fDoc.modified or(fDoc.fileName = fDoc.tempFilename)) + and (dlgFileChangeClose(fDoc.fileName) = mrCancel) then exit; fDoc.Free; end;