Dumping input-hotplug branches on master

Alex Deucher alexdeucher at gmail.com
Sun Oct 22 19:19:46 PDT 2006


On 10/21/06, Daniel Stone <daniel at fooishbar.org> wrote:
> Hi,
> If there are no objections, once Zepheniah and I have finished tooling
> around with a couple of last niggles, and I've ported the other DDXes,
> I'd like to drop the input-hotplug branches on master.
>
> Simply put, input currently is a disaster.  Everyone only listens for
> core (MotionNotify/{Key,Button}{Press,Release}) events, but in order to
> deal with multiple devices, you'd register the other devices as extended
> devices, but they would also silently send core events as well.  Eww.
>
> The new master branches of inputproto, libXi and xsetpointer, as well as
> the input-hotplug branch of the server, shake things up a bit.  There's
> actually quite a few changes in there, so I'll run you through them ...
>
> (I did the initial work for my employer, back in the pre-git days, so by
>  the time the legal OK came through after having vetted my contribution
>  and X.Org as a project, this had snowballed into a huge branch with
>  tons of changes.  Sorry.  git at least fixes this now ...)
>
>
> Input hotplug
> -------------
>
> Right now, this is implemented via D-BUS, which means the security
> policy is entirely external to the server, just as it is now with the
> configuration file.  Two methods[0] are available right now: add device,
> and remove device.  It's a fairly simple API.
>
> DevicePresenceNotify is sent with no device ID when the device list
> changes.
>
> Once the DIX work was done, this was actually the easy part.
>
> There's an extremely simple client in /git/users/daniels/respeclaration.
> It's really a proof of concept, and someone should really write
> something a great deal better.  (Looking at you, desktop types.)
>
>
> DIX work
> --------
>
> In the server, we changed the core devices to explicitly be virtual at
> all times: they never[1] originate their own events.  GetPointerEvents
> and GetKeyboardValuatorEvents (with its special case, GetKeyboardEvents)
> have been added to the DIX.  They generate events for you -- usually one
> or more for Xi, and one for core.  You then feed these events to the mi
> event queue, which now understands extended events.
>
> In theory, the DDX is still the ultimate arbiter of events, as they are
> passed through the DDX, instead of being fed directly to mieq.
>
> mipointer has had some minor API changes in order to specify which
> device you're talking about.  Between these two, slotting MPX in should
> be fairly non-invasive now.
>
>
> KDrive work
> -----------
>
> KDrive was at least honest about extended input devices, and didn't
> bother supporting them at all.
>
> I gave KDrive the concept of proper input drivers, which can have
> multiple devices registered, Xi support, and also XKB support (which was
> mainly done by Opened Hand).  This is a fairly big overhaul, but it all
> definitely works, which is nice.
>
>
> XFree86 work
> ------------
>
> This mainly consisted of deleting code needed to support Xi: basically
> the event generation code, and the event queue.  DGA input support had
> to go as well.  The deprecated keyboard driver is _completely_ gone,
> with the OS keyboard interface being removed.
>
>
> Statistics
> ----------
>
> daniels at endtroducing:~/x/xorg/xserver/xserver% git diff input-hotplug..master | diffstat | tail -1
>  238 files changed, 19982 insertions(+), 18290 deletions(-)
>
>
> I've been running Xorg from i-h as my daily X server on my laptop (my
> primary machine at home, gets used a lot at work too), and it's worked
> fine for a couple of months now.  I'm fairly happy with the codebase,
> and think it's solid enough to go in now.  However, the changes are
> fairly radical, so I think this also needs some soak time, as it were,
> before we push it out for 7.3.
>
> So, any furious objections?
>

I'm not too familiar with the input stuff for the most part, but would
any of this work cause problems for future support for a patch like
Peter Hutterer's multiple active mouse pointers work[1]?  That's one
of the most interesting changes in input stuff I've seen in a while
and I'd deinfiely like to see soemting like that merged at some point.

Alex

[1] - http://wearables.unisa.edu.au/mpx/

> Cheers,
> Daniel
>
> [0]:
> http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=blob;h=53bb3e45db58b15d026a59c31b0848e0f45133b5;hb=ec35e7198debf938f1115f584e675ce5995743e3;f=config/dbus-api
> [1]: Blah blah handwave blah.
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (GNU/Linux)
>
> iD8DBQFFOe6sRkzMgPKxYGwRAtYkAJsFDhn+zjsHFQwDAdZ7QMchGCjlVQCgkF2E
> 63DG6Q8gIqgObJG6oxM/eX4=
> =Rc/X
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
>



More information about the xorg mailing list