Changeset 32829 in vbox
- Timestamp:
- Sep 29, 2010 7:35:26 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 66287
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/MouseImpl.cpp
r32828 r32829 76 76 { 77 77 RT_ZERO(mpDrv); 78 fVMMDevCanAbs = false;79 fVMMDevNeedsHostCursor = false;78 mfVMMDevCanAbs = false; 79 mfVMMDevNeedsHostCursor = false; 80 80 mLastAbsX = 0x8000; 81 81 mLastAbsY = 0x8000; … … 110 110 unconst(mParent) = parent; 111 111 112 uHostCaps = 0;112 mfHostCaps = 0; 113 113 114 114 /* Confirm a successful initialization */ … … 199 199 bool fAbs = false; 200 200 201 if ( fVMMDevCanAbs)201 if (mfVMMDevCanAbs) 202 202 fAbs = TRUE; 203 203 … … 251 251 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 252 252 253 *pfNeedsHostCursor = fVMMDevNeedsHostCursor;253 *pfNeedsHostCursor = mfVMMDevNeedsHostCursor; 254 254 return S_OK; 255 255 } … … 393 393 LONG cJiggle = 0; 394 394 395 if ( fVMMDevCanAbs)395 if (mfVMMDevCanAbs) 396 396 { 397 397 /* … … 442 442 /* Make sure that the guest knows that we are sending real movement 443 443 * events to the PS/2 device and not just dummy wake-up ones. */ 444 if ( uHostCaps & VMMDEV_MOUSE_HOST_CAN_ABSOLUTE)444 if (mfHostCaps & VMMDEV_MOUSE_HOST_CAN_ABSOLUTE) 445 445 { 446 uHostCaps &= ~VMMDEV_MOUSE_HOST_CAN_ABSOLUTE;446 mfHostCaps &= ~VMMDEV_MOUSE_HOST_CAN_ABSOLUTE; 447 447 fUpdateCaps = TRUE; 448 448 } … … 452 452 /** @note we drop the lock before calling out of the object! */ 453 453 if (fUpdateCaps) 454 setVMMDevMouseCaps( uHostCaps);454 setVMMDevMouseCaps(mfHostCaps); 455 455 rc = reportRelEventToMouseDev(dx, dy, dz, dw, fButtons); 456 456 … … 537 537 538 538 /** @todo rename that capability to VMMDEV_MOUSE_HOST_WANTS_ABSOLUTE */ 539 if ( fVMMDevCanAbs && !(uHostCaps & VMMDEV_MOUSE_HOST_CAN_ABSOLUTE))539 if (mfVMMDevCanAbs && !(mfHostCaps & VMMDEV_MOUSE_HOST_CAN_ABSOLUTE)) 540 540 { 541 uHostCaps |= VMMDEV_MOUSE_HOST_CAN_ABSOLUTE;541 mfHostCaps |= VMMDEV_MOUSE_HOST_CAN_ABSOLUTE; 542 542 fUpdateCaps = TRUE; 543 543 } … … 545 545 /** @note we drop the lock again before calling out! */ 546 546 if (fUpdateCaps) 547 setVMMDevMouseCaps( uHostCaps);547 setVMMDevMouseCaps(mfHostCaps); 548 548 549 549 /** @todo rename that capability to VMMDEV_MOUSE_GUEST_USES_EVENT */ … … 579 579 fRelDev = true; 580 580 } 581 if (fAbsDev && !( uHostCaps & VMMDEV_MOUSE_HOST_HAS_ABS_DEV))582 uHostCaps |= VMMDEV_MOUSE_HOST_HAS_ABS_DEV;583 if (!fAbsDev && ( uHostCaps & VMMDEV_MOUSE_HOST_HAS_ABS_DEV))584 uHostCaps &= ~VMMDEV_MOUSE_HOST_HAS_ABS_DEV;581 if (fAbsDev && !(mfHostCaps & VMMDEV_MOUSE_HOST_HAS_ABS_DEV)) 582 mfHostCaps |= VMMDEV_MOUSE_HOST_HAS_ABS_DEV; 583 if (!fAbsDev && (mfHostCaps & VMMDEV_MOUSE_HOST_HAS_ABS_DEV)) 584 mfHostCaps &= ~VMMDEV_MOUSE_HOST_HAS_ABS_DEV; 585 585 } 586 586 /** @note we drop the lock again before calling out! */ 587 587 if (SUCCEEDED(getVMMDevMouseCaps(&u32MouseCaps))) 588 fVMMDevCanAbs = (u32MouseCaps & VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE)588 mfVMMDevCanAbs = (u32MouseCaps & VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE) 589 589 && fRelDev; 590 590 else 591 fVMMDevCanAbs = false;591 mfVMMDevCanAbs = false; 592 592 /** @todo this call takes the Console lock in order to update the cached 593 593 * callback data atomically. However I can't see any sign that the cached 594 594 * data is ever used again. */ 595 mParent->onMouseCapabilityChange(fAbsDev || fVMMDevCanAbs, fRelDev,596 fVMMDevNeedsHostCursor);595 mParent->onMouseCapabilityChange(fAbsDev || mfVMMDevCanAbs, fRelDev, 596 mfVMMDevNeedsHostCursor); 597 597 /** @todo if this gets called during device initialisation we get an 598 598 * error due to VMMDev not being initialised yet. */ 599 setVMMDevMouseCaps( uHostCaps);599 setVMMDevMouseCaps(mfHostCaps); 600 600 } 601 601 -
trunk/src/VBox/Main/include/MouseImpl.h
r32828 r32829 28 28 /** Mouse driver instance data. */ 29 29 typedef struct DRVMAINMOUSE DRVMAINMOUSE, *PDRVMAINMOUSE; 30 31 /** Simple mouse event class. */32 class MouseEvent33 {34 public:35 MouseEvent() : dx(0), dy(0), dz(0), dw(0), state(-1) {}36 MouseEvent(int32_t _dx, int32_t _dy, int32_t _dz, int32_t _dw, int32_t _state) :37 dx(_dx), dy(_dy), dz(_dz), dw(_dw), state(_state) {}38 bool isValid()39 {40 return state != -1;41 }42 /* Note: dw is the horizontal scroll wheel */43 int32_t dx, dy, dz, dw;44 int32_t state;45 };46 // template instantiation47 typedef ConsoleEventBuffer<MouseEvent> MouseEventBuffer;48 30 49 31 class ATL_NO_VTABLE Mouse : … … 104 86 void onVMMDevNeedsHostChange(bool needsHost) 105 87 { 106 fVMMDevNeedsHostCursor = needsHost;88 mfVMMDevNeedsHostCursor = needsHost; 107 89 sendMouseCapsNotifications(); 108 90 } … … 137 119 struct DRVMAINMOUSE *mpDrv[MOUSE_MAX_DEVICES]; 138 120 139 LONG uHostCaps;140 bool fVMMDevCanAbs;141 bool fVMMDevNeedsHostCursor;121 LONG mfHostCaps; 122 bool mfVMMDevCanAbs; 123 bool mfVMMDevNeedsHostCursor; 142 124 uint32_t mLastAbsX; 143 125 uint32_t mLastAbsY;
Note:
See TracChangeset
for help on using the changeset viewer.