* fixed double width character at the end of TInputLine covering the right

scroll arrow

git-svn-id: branches/unicodekvm@48811 -
This commit is contained in:
nickysn 2021-02-26 13:32:11 +00:00
parent fe312ab99f
commit ddd87e09ff

View File

@ -1444,7 +1444,7 @@ END;
{---------------------------------------------------------------------------}
{$ifdef FV_UNICODE}
PROCEDURE TInputLine.Draw;
VAR Color: Byte; L, R, SkipToFirstPosLeft, ScrPos: Sw_Integer;
VAR Color: Byte; L, R, SkipToFirstPosLeft, ScrPos, EGC_StrWidth: Sw_Integer;
B : TDrawBuffer;
EGC: Sw_String;
BEGIN
@ -1480,6 +1480,9 @@ BEGIN
Dec(SkipToFirstPosLeft, Length(EGC))
else
begin
EGC_StrWidth := StrWidth(EGC);
if (ScrPos + EGC_StrWidth - 1) > (Size.X - 2) then
break;
with B[ScrPos] do
begin
ExtendedGraphemeCluster := EGC;
@ -1488,11 +1491,9 @@ BEGIN
else
Attribute:=Color;
end;
Inc(ScrPos, StrWidth(EGC));
Inc(ScrPos, EGC_StrWidth);
Dec(L, Length(EGC));
Dec(R, Length(EGC));
if ScrPos > (Size.X - 2) then
break;
end;
end;
WriteLine(0, 0, Size.X, Size.Y, B);