XI2 DirectInput mouse implementation RFC (Tarballed)

Paul TBBle Hampson Paul.Hampson at Pobox.com
Mon Apr 20 20:25:58 CDT 2009


On Tue, Apr 21, 2009 at 01:09:47AM +1000, Paul TBBle Hampson wrote:
> I think my solution to that while keeping the same structure is to add a
> WH_WINEMOUSE_REL hook message that carries relative mouse movement data,
> and let DirectInput and RawInput hook that. This also means that
> applications that wish to hook WH_MOUSE_LL while using DirectInput and
> RawInput are free to do so. (This last point may not be interesting, I
> don't know if they are currently interfered with by DirectInput taking a
> WH_MOUSE_LL hook on their behalf, and again it's probably pathological)

> It's late, and although I've been stewing this over for the last few
> hours, it still may not make a lot of sense or contain large oversights
> on my part.

Two things I overlooked last night:

WH_MOUSE_LL only supports 5 buttons, DI supports 8. (kinda trivial, I
don't know if things would break if we invented XMOUSE3 through
XMOUSE5...)

Responsibility for generating hook messages when no Wine window is
receiving X events (ie. XI2 is the only thing generating messages). Only
one X connection should be receiving XI2, presumably the first one to
want to do so, but if it exits, another window should take over assuming
other windows still want to know about background mouse movement.

There's the possibility of lost input events during this changeover --
specifically, those events there were queued for the old window, or
would have been queued except the old window went away, and aren't
requeued to the new window.

-- 
-----------------------------------------------------------
Paul "TBBle" Hampson, B.Sc, LPI, MCSE
Very-later-year Asian Studies student, ANU
The Boss, Bubblesworth Pty Ltd (ABN: 51 095 284 361)
Paul.Hampson at Pobox.com

Of course Pacman didn't influence us as kids. If it did,
we'd be running around in darkened rooms, popping pills and
listening to repetitive music.
 -- Kristian Wilson, Nintendo, Inc, 1989

License: http://creativecommons.org/licenses/by/2.5/au/
-----------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20090421/5dbd1802/attachment.pgp>


More information about the wine-devel mailing list