It's been a while since I've looked at this code, so I might not be following entirely, but if I'm reading it correctly, it would appear that it sets the event type in such a way that the event will not be interpreted as a pointer motion?<br>
<br>If so, this is exactly what will be required to add SpaceNavigator support directly as an XInput driver, rather than using a special management daemon. The use case that needs support is if two 3D applications are open at once, whichever one has keyboard focus should receive extension valuator events, rather than pointer events, from the SN. Generally this is used to manipulate the 3D camera inside the application, not the pointer.<br>
<br>Right now, SecondLife opens the device directly as a joystick, and Blender requires the use of a special daemon. Making them share nicely is effectively impossible right now. There may be other applications of this device that I am not aware of, but these two alone demonstrate the current problem.<br>
<br>There are other similar input devices still on the market, like jog wheels, etc, which also are intended to send numerical valuator inputs which are not pointer movement events.<br><br><div class="gmail_quote">On Mon, Jan 16, 2012 at 11:27 PM, Peter Hutterer <span dir="ltr"><<a href="mailto:peter.hutterer@who-t.net">peter.hutterer@who-t.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Some devices should not use a traditional pointer-focusing model but instead<br>
should be controlled by the client at all times. One example are tablets<br>
that are bound through the GDK map to window option. Once focused, the<br>
tablet events should always go to the focus window.<br>
<br>
Currently, devices only send pointer events to the window at the sprite<br>
location. This behaviour was introduced in a88386ee277d136caaae<br>
and breaks how XI 1.x devices used to be handled.<br>
<br>
A device that uses forced focus will always either deliver to the focus<br>
window, or to the sprite window if the focus is PointerRoot. If the device<br>
is a floating slave device, the VCP determines the sprite window.<br>
Forced focus devices are listed as IsXExtensionDevice, this best emulates<br>
the original behaviour for XI 1.x clients that need it.<br>
<br>
A device can be enabled as such a device through the ForceFocus option in<br>
the config file or snippet. This is a permanent option and cannot be changed<br>
at runtime.<br>
<br>
Signed-off-by: Peter Hutterer <<a href="mailto:peter.hutterer@who-t.net">peter.hutterer@who-t.net</a>><br></blockquote></div>