Age | Commit message (Collapse) | Author |
|
If the server supports a lower XI version than the client, the Xlib-internal
event vector may be smashed. See libXext for more details.
http://cgit.freedesktop.org/xorg/lib/libXext/commit/?id=83fdb27df4ddc2fb088ddf2ec65f0db6b7c57287
This patch queries the server for the supported XI extension before
registering the extension with Xlib. The number of events registered depends
on the server version.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
|
|
Simple call to get the pointer to the next field when operating on a wire
protocol struct or on a single-memory-block Xlib structure.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
XIQueryVersion (like all other calls) makes sure XGetExtensionVersion is
called beforehand anyway. So if that doesn't match 2.0 or higher, return
BadRquest before issuing the real request (which would trigger a BadRequest
error). This way, clients can use XIQueryVersion without having to set up
the error handler.
XIQueryVersion is now guaranteed to return the server-supported version.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
This fixes 64bit compilation issues.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
FIXME: not bisectable due to XiSelectInput.
This includes namespacing them with an XI2 prefix.
Affected calls:
XIGetClientPointer
XISetClientPointer
XIDefineDeviceCursor
XIUndefineDeviceCursor
XIWarpDevicePointer
XIQueryDevicePointer
XIChangeDeviceHierarchy (+ event)
|
|
|
|
XI2 should use a separate request to query the version rather than piggy-back
on an existing badly defined request.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
|
|
|
|
Thre are still two remaining compiler warnings, because of non matching
function prototypes and function pointer arguments prototypes:
src/XSndExEv.c:XSendExtensionEvent()
variable register Status(**fp) (Display *, XEvent*, xEvent **, int *)
doesn't match struct _XDisplay's:
Status (*wire_vec[128])( /* vector for event to wire */
Display * /* dpy */,
XEvent * /* re */,
xEvent * /* event */
);
and
src/XExtInt.c:xinput_extension_hooks field event_to_wire of type
XExtensionHooks that has the prototype Status (*event_to_wire)(
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
);
does not match Status
_XiEventToWire(
register Display *dpy, /* pointer to display structure */
register XEvent *re, /* pointer to client event */
register xEvent **event, /* wire protocol event */
register int *count);
Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
|
|
We need XI to be able to do some sort of versioning support.
|
|
held.
All callers of _XiCheckExtInit have already called XInput_find_display
first outside the lock, so just pass their copy of the XExtDisplayInfo
structure down. Besides being more correct, this should be slightly
faster. :-)
Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for identifying
the bug and proposing a workaround.
|
|
lock is held.
_XiGetExtensionVersion has two callers. One had already called
XInput_find_display, and the other could easily do so outside the
Display lock. So I change the _XiGetExtensionVersion interface to
accept a previously-computed XExtDisplayInfo from the caller.
Besides being more correct, this should be slightly faster. :-)
Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for identifying
the bug and proposing a workaround.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|