Fix cursor ghost at end of lines when cursor changes rows
WriteDeferredBuf now dirties the old cursor row before the render loop so the reverse-video cursor block is erased. FlipToScreen's ghost cleanup was ineffective because FLastCursorRow was already updated by WriteDeferredBuf. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
cb2018dff4
commit
9102dd1938
1 changed files with 7 additions and 0 deletions
|
|
@ -2188,6 +2188,13 @@ begin
|
|||
SelectObject(FLiveDC, FPaintFont);
|
||||
SetBkMode(FLiveDC, OPAQUE);
|
||||
FlushPendingScrolls;
|
||||
{ Dirty old cursor row to erase ghost when cursor moved between rows }
|
||||
if FCursorRow <> FLastCursorRow then
|
||||
begin
|
||||
if (FLastCursorRow >= 0) and (FLastCursorRow < FRows) then
|
||||
FDirtyRow[FLastCursorRow] := True;
|
||||
FDirtyRow[FCursorRow] := True;
|
||||
end;
|
||||
for Row := 0 to FRows - 1 do
|
||||
begin
|
||||
if FAllDirty or FDirtyRow[Row] then
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue