[haiku] Re: VMW tools as (optional) package

  • From: "François Revol" <revol@xxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Sun, 01 Feb 2009 21:49:30 +0100 CET

> Le 26 janv. 09 à 15:18, holmqvist.fredrik@xxxxxxxxxxxx a écrit :
> > They are quite simple. Just look at the source. I think the wmvare  
> > mouse driver would benefit from using absolute
> > coords instead of relative.
> > They are currently in floating point 0 to 1.
> I started creating an input_server add-on for the vmware mouse (using  
> the "tablet" and "serial_mouse" add-ons as examples), I made it  
> working but there are still issues :
>   - Like you said, coordinates are floating numbers from 0 to 1, and  
> unfortunately the VMW backdoor returns the coordinates in pixel.
> So for now I just use :
> float x = cursor_x;
> float y = cursor_y;
> x /= 1024.0;
> y /= 768.0;
> which is only working if the screen resolution is 1024x768, of 
> course.  
> I suppose I could get the current resolution and detect resolution  
> changes, but support for absolute coordinates would probably be 
> better.

Filter addons can use a GetScreenRegion() but not the Device addons...
You can probably just use BScreen::Frame() .Width() and .Height() 
(beware off by 1!)
And hope it won't deadlock.

>   - Haiku is receiving data from the (virtual) PS2 or USB mouse and  
> the VMW mouse at the same time, so the cursors flashes (and dragging  
> does not work very well).
> Disabling the "mouse" add-on is not an option, since the buttons  
> status is not sent by VMWare...
> I guess that I could write an input_server filter to make it ignore  
> the "mouse moved" events from the USB mouse, but this is going  
> complicated...

Or just instead overrides the mouse moves from the mouse addon with the 
absolute coordinates.

> Perhaps a better option could be to directly patch the "mouse" add-
> on,  
> making it send absolute coordinates when it is running in VMWare and  
> the mouse is moved. It would also avoid polling the VMW backdoor  
> constantly. I will take a look....

I suppose so.
This design seems quite stupid from vmware... oh well.


Other related posts: