diff --git a/rtl/go32v2/mouse.pp b/rtl/go32v2/mouse.pp index 7d73e8512f..b2d5551b08 100644 --- a/rtl/go32v2/mouse.pp +++ b/rtl/go32v2/mouse.pp @@ -21,6 +21,9 @@ interface { tells the mouse unit to draw the mouse cursor itself } procedure DoCustomMouse(b : boolean); +const + MouseIsVisible: boolean = false; + implementation @@ -55,7 +58,6 @@ const CallCounter : longint = 0; {$endif DEBUG} drawmousecursor : boolean = false; - mouseisvisible : boolean = false; { position where the mouse was drawn the last time } oldmousex : longint = -1; oldmousey : longint = -1; @@ -586,6 +588,7 @@ begin popl %ebp .LShowMouseExit: end; + MouseIsVisible := true; end; @@ -615,6 +618,7 @@ begin popl %ebp .LHideMouseExit: end; + MouseIsVisible := false; end; diff --git a/rtl/go32v2/video.pp b/rtl/go32v2/video.pp index 73c2f3abe2..e338824a4c 100644 --- a/rtl/go32v2/video.pp +++ b/rtl/go32v2/video.pp @@ -194,7 +194,12 @@ begin end; procedure SysUpdateScreen(Force: Boolean); +var + Is_Mouse_Vis: boolean; begin + Is_Mouse_Vis := MouseIsVisible; {MouseIsVisible is from Mouse unit} + if Is_Mouse_Vis then + HideMouse; if not force then begin asm @@ -216,6 +221,8 @@ begin dosmemput(videoseg,0,videobuf^,VideoBufSize); move(videobuf^,oldvideobuf^,VideoBufSize); end; + if Is_Mouse_Vis then + ShowMouse; end; Procedure DoSetVideoMode(Params: Longint);