diff --git a/ide/text/weditor.pas b/ide/text/weditor.pas index f9a308ef1b..c939de4a7d 100644 --- a/ide/text/weditor.pas +++ b/ide/text/weditor.pas @@ -2761,6 +2761,7 @@ procedure TCodeEditor.DelSelect; var LineDelta, LineCount, CurLine: Sw_integer; StartX,EndX,LastX: Sw_integer; S: string; + SPos : TPoint; begin if IsReadOnly or (ValidBlock=false) then Exit; @@ -2773,26 +2774,36 @@ begin S:=GetDisplayText(CurLine); if LineDelta=0 then StartX:=SelStart.X else StartX:=0; if LineDelta=LineCount-1 then EndX:=SelEnd.X else EndX:=length(S); - if (LineDelta=length(S)) ) - then begin - DeleteLine(CurLine); - if CurLine>0 then LastX:=length(GetDisplayText(CurLine-1)) - else LastX:=0; - end - else begin - SetDisplayText(CurLine,RExpand(copy(S,1,StartX),StartX)+copy(S,EndX+1,255)); - LastX:=StartX; - if (StartX=0) and (0=length(S))) then + begin + { delete the complete line } + DeleteLine(CurLine); + if CurLine>0 then + LastX:=length(GetDisplayText(CurLine-1)) + else + LastX:=0; + end + else + begin + if StoreUndo then + begin + SPos.X:=StartX; + SPos.Y:=CurLine; + AddAction(eaDeleteText,SPos,SPos,Copy(S,StartX+1,EndX-StartX)); + end; + SetDisplayText(CurLine,RExpand(copy(S,1,StartX),StartX)+copy(S,EndX+1,255)); + LastX:=StartX; + if (StartX=0) and (0GetFileTime(FileName); + IsChangedOnDisk:=(OnDiskLoadTime<>GetFileTime(FileName)) and (OnDiskLoadTime<>-1); end; function TFileEditor.SaveFile: boolean; @@ -4980,6 +4991,8 @@ begin begin FileName := FExpand(FileName); Message(Owner, evBroadcast, cmUpdateTitle, @Self); + { if we rename the file the OnDiskLoadTime is wrong so we reset it } + OnDiskLoadTime:=-1; SaveAs := SaveFile; if IsClipboard then FileName := ''; Message(Application,evBroadcast,cmFileNameChanged,@Self); @@ -5418,7 +5431,11 @@ end; END. { $Log$ - Revision 1.67 2000-01-03 11:38:35 michael + Revision 1.68 2000-01-04 12:33:08 pierre + * reinserted version 1.66 lost changes + + CtrlT Undo works now ! + + Revision 1.67 2000/01/03 11:38:35 michael Changes from Gabor Revision 1.65 1999/12/08 16:02:46 pierre