Fixed multimon support for win NT/2000/XP running as client. Mouse

would jump between two points.
This commit is contained in:
crs 2004-11-01 18:24:37 +00:00
parent 2a3015f06a
commit 18dda312d2
1 changed files with 5 additions and 3 deletions

View File

@ -468,8 +468,10 @@ void
CMSWindowsDesks::deskMouseMove(SInt32 x, SInt32 y) const CMSWindowsDesks::deskMouseMove(SInt32 x, SInt32 y) const
{ {
// motion is simple (i.e. it's on the primary monitor) if there // motion is simple (i.e. it's on the primary monitor) if there
// is only one monitor. // is only one monitor. it's also simple if we're not on the
bool simple = !m_multimon; // windows 95 family since those platforms don't have a broken
// mouse_event() function (see the comment below).
bool simple = (!m_multimon || !m_is95Family);
if (!simple) { if (!simple) {
// also simple if motion is within the primary monitor // also simple if motion is within the primary monitor
simple = (x >= 0 && x < GetSystemMetrics(SM_CXSCREEN) && simple = (x >= 0 && x < GetSystemMetrics(SM_CXSCREEN) &&
@ -489,7 +491,7 @@ CMSWindowsDesks::deskMouseMove(SInt32 x, SInt32 y) const
0, 0); 0, 0);
} }
// windows 98 (and Me?) is broken. you cannot set the absolute // windows 98 and Me are broken. you cannot set the absolute
// position of the mouse except on the primary monitor but you // position of the mouse except on the primary monitor but you
// can do relative moves onto any monitor. this is, in microsoft's // can do relative moves onto any monitor. this is, in microsoft's
// words, "by design." apparently the designers of windows 2000 // words, "by design." apparently the designers of windows 2000