Dumping input-hotplug branches on master

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


On 10/22/06, Alex Deucher <alexdeucher at gmail.com> wrote:
> 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.
>

Sorry ignore me.  I missed your comments on MPX the first time I read through...

Alex

> 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