[PULL] unreviewed patches
Peter Hutterer
peter.hutterer at who-t.net
Sun Oct 28 22:51:07 PDT 2012
On Fri, Oct 26, 2012 at 04:04:21PM -0700, Keith Packard wrote:
> Peter Hutterer <peter.hutterer at who-t.net> writes:
>
> > All these need review lovin'.
> >
> > Pull request is on top of my for-keith branch
> > from last Friday.
> > http://lists.freedesktop.org/archives/xorg-devel/2012-October/034064.html
> >
> > The following changes since commit c5396ec05a5c6cab6608ba677f703c5227b1de13:
> >
> > xf86: Fix build against recent Linux kernel (2012-10-19 13:12:33 +1000)
> >
> > are available in the git repository at:
> >
> > git://people.freedesktop.org/~whot/xserver unreviewed
> >
> > for you to fetch changes up to c97467d449c30da7529bdcc68c3ed344828a6baa:
> >
> > dix: don't filter RawEvents if the grab window is not the root window (#53897) (2012-10-25 15:54:02 +1000)
> >
> > ----------------------------------------------------------------
> > Peter Hutterer (7):
> > dix: don't allow disabling XTest devices
>
> I'd say the error values for the two code paths should be the same. I'd
> suggest that BadMatch might be a slightly better value, but I'm easy if
> you prefer BadAccess.
We've had BadAccess for VCP/VCK for a while now, so I'm hesitant to change
it for little benefit. Plus, the error codes for properties are a bit of a
desaster, I should've added specific error codes for the various errors that
can actually happen.
For XChangeDeviceControl, we actually have it documented that BadMatch is a
valid error code (and from my reading it appears to be the best choice
here).
> Also, the comment in DeviceSetProperty should be updated to reflect that
> the xtest devices are also not subject to disabling.
done, thanks.
> I did verify that these are the only relevant code paths.
>
> Mostly-happy-with: Keith Packard <keithp at keithp.com>
>
> > xkb: ProcesssPointerEvent must work on the VCP if it gets the VCP
>
> Yeah, this looked right when I looked at it a while ago.
>
> Reviewed-by: Keith Packard <keithp at keithp.com>
>
> > Xi: set xChangeDeviceControlReply.status to Success by default
>
> Reviewed-by: Keith Packard <keithp at keithp.com>
>
> > Xi: don't deliver TouchEnd to a client waiting for TouchBegin (#55738)
>
> Following the state changes in exevents.c was entertaining, but there
> doesn't seem to be any way to get past LISTENER_AWAITING_BEGIN without
> delivering a TouchBegin event. Therefore, this simple patch seems
> correct to me.
>
> Reviewed-by: Keith Packard <keithp at keithp.com>
>
> > dix: fix zaphod screen scrossing (#54654)
>
> Reviewed-by: Keith Packard <keithp at keithp.com>
>
> > xfree86: remove unused variable sigstate
>
> Reviewed-by: Keith Packard <keithp at keithp.com>
>
> > dix: don't filter RawEvents if the grab window is not the root window (#53897)
>
> I'd have to say that 'FilterRawEvents' is a pretty miserable function;
> the semantics of its return value are muddled due to how it gets
> invoked, in particular, it "knows" that an event may have been delivered
> through the grab and that it must, therefore, suppress an extra event in
> that case. Ick.
>
> I have the feeling that it should be using the return value from
> DeliverGrabbedEvent to help decide whether to deliver another event,
> something like:
>
> if (deliveries && SameClient(grab, client))
> don't deliver another event
>
> Then, the question is 2.0 vs 2.1; for the 2.0 case a grab always
> prevents delivery
>
> else if (2.0 && grab)
> don't deliver an event
>
> else
> deliver an event
>
> Just sticking these tests right inside DeliverRawEvent would keep all of
> the conditions together, instead of having some split out to
> FilterRawEvent. Keeping the Xi version check in a separate function
> makes good sense though; that's really the only complexity in
> FilterRawEvents at present.
I'll have a look again and see if I can clean this up. One day.
> (I'm hoping I got the semantics of raw events right; the protocol spec
> seems a lot less ambiguous than the code does...)
if there's any ambiguity in the spec let me know and I can amend them. I
know what was _intended_, so we can fix the spec to be understood by
people now directly involved in the development. A luxury that we don't have
on all extensions...
fwiw, the semantics are fairly simple:
XI 2.0: raw events except if some other client has a grab
XI 2.1: raw events at all times
The code is more complicated largely to avoid duplicate raw events.
Cheers,
Peter
More information about the xorg-devel
mailing list