Date: Wed, 9 Jan 2008 19:26:06 +1100 From: Sam Lawrance <boris@brooknet.com.au> To: Bob Finch <bob@nas.com> Cc: freebsd-questions@freebsd.org Subject: Re: Xorg 7.2 and FreeBSD 6.2-p5 VMWARE vmmouse problem Message-ID: <DF51F551-BE25-44D0-A8A6-9EC5F51BC11E@brooknet.com.au> In-Reply-To: <1199835084.952.18.camel@polaris.admcs.wwu.edu> References: <1199835084.952.18.camel@polaris.admcs.wwu.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 09/01/2008, at 10:31 AM, Bob Finch wrote: > On 10/10/2007, at 17:00:22, Sam Lawrance wrote: >> On 10/07/2007, at 11:53 AM, Webster, Andrew wrote: > >>> Howdy, >>> >>> >>> >>> I was successfully able to get Xorg upgraded to 7.2 by just >>> installing them from scratch as opposed to trying to upgrading an >>> existing system, BUT I=92ve run into a problem=85 >>> >>> >>> >>> While running VMWare Server 1.0.3 with FreeBSD 6.2-p5 and Xorg 7.2, >>> the mouse pointer behaves very oddly. >>> >>> The pointer appears in the wrong place on the screen for where the >>> system actually thinks that it is. >>> >>> I=92m using the vmmouse driver part of the Xorg system, as the >>> regular mouse driver doesn=92t appear to work at all, unless some >>> settings are amiss. >>> >>> I really like the vmmouse drive because you can move the pointer in/ >>> out of the window as you do with regular windows guest OSes. >>> >>> >>> >>> Has anyone experienced similar problems and/ or know of a fix for >>> this? >>> >> >> Andrew, >> >> I just set up VMWare Fusion with FreeBSD and have a problem that >> might be related. Ascii art time: >> _____________ >> |_| | >> | | >> | | >> |___________| >> >> The pointer appears normally on the screen. However, clicking around >> the screen does not work except in a small area in the top left >> corner. Moving the mouse within this tiny corner seems to scale up >> and operate on the entire screen. Eg. if I click and drag across the >> tiny corner, I can see the selection appear across the entire =20 >> desktop. >> >> Is this similar to your issue? Did you find a resolution? > > Sam, > > I ran into this problem on FreeBSD 7.0 RC1 with Xorg 7.3 using the > VMWare mouse driver (vmmouse). > > Apparently, X server 1.4.0 in Xorg 7.3 no longer calls the =20 > conversion_proc > function in the mouse driver. The VMWare mouse driver depends on that > call to scale the mouse coordiates to the screen size. > > As a workaround, I fetched the x11-drivers/xf86-input-vmmouse port and > patched src/vmmouse.c by hand before installing it: > > bob polaris[9]: diff -u orig/xf86-input-vmmouse-12.4.3/src/=20 > vmmouse.c xf86-input-vmmouse-12.4.3/src/vmmouse.c > --- orig/xf86-input-vmmouse-12.4.3/src/vmmouse.c 2007-09-25 =20 > 16:11:47.000000000 -0700 > +++ xf86-input-vmmouse-12.4.3/src/vmmouse.c 2008-01-08 =20 > 14:58:59.000000000 -0800 > @@ -964,8 +964,11 @@ > VMMOUSE_INPUT_DATA vmmouseInput; > int ps2Buttons =3D 0; > int numPackets; > + VMMousePrivPtr mPriv; > + double factorX, factorY; > > pMse =3D pInfo->private; > + mPriv =3D pMse->mousePriv; > while((numPackets =3D VMMouseClient_GetInput(&vmmouseInput))){ > if (numPackets =3D=3D VMMOUSE_ERROR) { > VMMouseClient_Disable(); > @@ -990,6 +993,13 @@ > dy =3D vmmouseInput.Y; > dz =3D (char)vmmouseInput.Z; > dw =3D 0; > + > + /* X server 1.4.0 does not call VMMouseConvertProc() so we =20 > scale coordinates here */ > + factorX =3D ((double) screenInfo.screens[mPriv->screenNum]-=20 > >width) / (double) 65535; > + factorY =3D ((double) screenInfo.screens[mPriv->screenNum]-=20 > >height) / (double) 65535; > + dx =3D dx * factorX + 0.5; > + dy =3D dy * factorY + 0.5; > + > /* post an event */ > pMse->PostEvent(pInfo, buttons, dx, dy, dz, dw); > } Oh wow, I owe you a beer! Any idea why this does not affect everyone using vmware?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DF51F551-BE25-44D0-A8A6-9EC5F51BC11E>