[NTVDM]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Sat, 19 Sep 2015 22:29:45 +0000 (22:29 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Sat, 19 Sep 2015 22:29:45 +0000 (22:29 +0000)
Save and restore BP, DS and ES when calling the mouse callback.

svn path=/trunk/; revision=69298

reactos/subsystems/mvdm/ntvdm/dos/mouse32.c

index 28bde45..257dac4 100644 (file)
@@ -243,7 +243,7 @@ static VOID FromMouseCoordinates(PCOORD Position)
 static VOID CallMouseUserHandlers(USHORT CallMask)
 {
     USHORT i;
-    USHORT AX, BX, CX, DX, SI, DI;
+    USHORT AX, BX, CX, DX, BP, SI, DI, DS, ES;
     COORD Position = DriverState.Position;
 
     ToMouseCoordinates(&Position);
@@ -262,8 +262,11 @@ static VOID CallMouseUserHandlers(USHORT CallMask)
         BX = getBX();
         CX = getCX();
         DX = getDX();
+        BP = getBP();
         SI = getSI();
         DI = getDI();
+        DS = getDS();
+        ES = getES();
 
         setAX(CallMask);
         setBX(DriverState.ButtonState);
@@ -284,8 +287,11 @@ static VOID CallMouseUserHandlers(USHORT CallMask)
         setBX(BX);
         setCX(CX);
         setDX(DX);
+        setBP(BP);
         setSI(SI);
         setDI(DI);
+        setDS(DS);
+        setES(ES);
     }
 
     for (i = 0; i < ARRAYSIZE(DriverState.Handlers); ++i)