|
@@ -855,7 +855,7 @@ const
|
|
|
MouseUsesVideoBuf = false;
|
|
|
{$endif not UNIX}
|
|
|
|
|
|
-procedure DrawScreenBuf;
|
|
|
+procedure DrawScreenBuf(force:boolean);
|
|
|
begin
|
|
|
if (GetLockScreenCount=0) then
|
|
|
begin
|
|
@@ -868,7 +868,7 @@ begin
|
|
|
end
|
|
|
else
|
|
|
HideMouse;
|
|
|
- UpdateScreen(false);
|
|
|
+ UpdateScreen(force);
|
|
|
If not MouseUsesVideoBuf then
|
|
|
ShowMouse;
|
|
|
end;
|
|
@@ -1430,7 +1430,7 @@ begin
|
|
|
LockScreenUpdate; { don't update the screen yet }
|
|
|
Draw;
|
|
|
UnLockScreenUpdate;
|
|
|
- DrawScreenBuf;
|
|
|
+ DrawScreenBuf(false);
|
|
|
TView.DrawCursor;
|
|
|
end;
|
|
|
end;
|
|
@@ -2164,11 +2164,16 @@ end;
|
|
|
|
|
|
|
|
|
{--TGroup-------------------------------------------------------------------}
|
|
|
-{ ReDraw -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 17Sep97 LdB }
|
|
|
+{ ReDraw -> Platforms DOS/DPMI/WIN/NT/OS2 - Updated 2Jun06 DM }
|
|
|
{---------------------------------------------------------------------------}
|
|
|
procedure TGroup.Redraw;
|
|
|
begin
|
|
|
+ {Lock to prevent screen update.}
|
|
|
+ lockscreenupdate;
|
|
|
DrawSubViews(First, nil);
|
|
|
+ unlockscreenupdate;
|
|
|
+ {Draw all views at once, forced update.}
|
|
|
+ drawscreenbuf(true);
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -4341,7 +4346,7 @@ begin
|
|
|
B[i]:=myChar;
|
|
|
do_writeView(X,X+Count,Y,B);
|
|
|
end;
|
|
|
- DrawScreenBuf;
|
|
|
+ DrawScreenBuf(false);
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -4352,7 +4357,7 @@ begin
|
|
|
if h>0 then
|
|
|
for i:=0 to h-1 do
|
|
|
do_writeView(x,x+w,y+i,buf);
|
|
|
- DrawScreenBuf;
|
|
|
+ DrawScreenBuf(false);
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -4370,10 +4375,10 @@ begin
|
|
|
MyColor:=MapColor(Color);
|
|
|
MyColor:=MyColor shl 8;
|
|
|
for i:=0 to l-1 do
|
|
|
- B[i]:=MyColor+ord(Str[i+1]);
|
|
|
+ B[i]:=MyColor+ord(Str[i+1]);
|
|
|
do_writeView(x,x+l,y,b);
|
|
|
end;
|
|
|
- DrawScreenBuf;
|
|
|
+ DrawScreenBuf(false);
|
|
|
end;
|
|
|
|
|
|
|