[PATCH] Added confine protocol.
Peter Hutterer
peter.hutterer at who-t.net
Sun May 8 19:36:22 PDT 2011
On Thu, May 05, 2011 at 04:04:58PM +0200, Philipp Reh wrote:
> ---
> XI2proto.h | 83 ++++++++++++++++++++++++++++++++++++++++++++---------------
> 1 files changed, 62 insertions(+), 21 deletions(-)
>
> diff --git a/XI2proto.h b/XI2proto.h
> index 84574a5..5ded2f3 100644
> --- a/XI2proto.h
> +++ b/XI2proto.h
> @@ -71,27 +71,29 @@
> /**
> * XI2 Request opcodes
> */
> -#define X_XIQueryPointer 40
> -#define X_XIWarpPointer 41
> -#define X_XIChangeCursor 42
> -#define X_XIChangeHierarchy 43
> -#define X_XISetClientPointer 44
> -#define X_XIGetClientPointer 45
> -#define X_XISelectEvents 46
> -#define X_XIQueryVersion 47
> -#define X_XIQueryDevice 48
> -#define X_XISetFocus 49
> -#define X_XIGetFocus 50
> -#define X_XIGrabDevice 51
> -#define X_XIUngrabDevice 52
> -#define X_XIAllowEvents 53
> -#define X_XIPassiveGrabDevice 54
> -#define X_XIPassiveUngrabDevice 55
> -#define X_XIListProperties 56
> -#define X_XIChangeProperty 57
> -#define X_XIDeleteProperty 58
> -#define X_XIGetProperty 59
> -#define X_XIGetSelectedEvents 60
> +#define X_XIQueryPointer 40
> +#define X_XIWarpPointer 41
> +#define X_XIChangeCursor 42
> +#define X_XIChangeHierarchy 43
> +#define X_XISetClientPointer 44
> +#define X_XIGetClientPointer 45
> +#define X_XISelectEvents 46
> +#define X_XIQueryVersion 47
> +#define X_XIQueryDevice 48
> +#define X_XISetFocus 49
> +#define X_XIGetFocus 50
> +#define X_XIGrabDevice 51
> +#define X_XIUngrabDevice 52
> +#define X_XIAllowEvents 53
> +#define X_XIPassiveGrabDevice 54
> +#define X_XIPassiveUngrabDevice 55
> +#define X_XIListProperties 56
> +#define X_XIChangeProperty 57
> +#define X_XIDeleteProperty 58
> +#define X_XIGetProperty 59
> +#define X_XIGetSelectedEvents 60
> +#define X_XIGrabDeviceWithConfine 61
> +#define X_XIPassiveGrabDeviceWithConfine 62
Do we really need a new protocol request here?
any reason we can't tack on the extra 4 bytes to the original request and
handle it based on protocol support by the client?
A more extensive commit messager would be a appreciated too to explain _why_
the confine_to is necessary. You've already told me on IRC but things like
this need to be in writing for the next person.
Missing from this patch is also the matching updates in the XI2proto.txt
protocol specification (and the comments which version this was added, etc.)
Cheers,
Peter
>
> /** Number of XI requests */
> #define XI2REQUESTS (X_XIGetSelectedEvents - X_XIQueryPointer + 1)
> @@ -569,6 +571,25 @@ typedef struct {
> } xXIGrabDeviceReq;
> #define sz_xXIGrabDeviceReq 24
>
> +typedef struct {
> + uint8_t reqType;
> + uint8_t ReqType; /**< Always ::X_XIGrabDeviceWithConfine */
> + uint16_t length; /**< Length in 4 byte units */
> + Window grab_window;
> + Window confine_to;
> + Time time;
> + Cursor cursor;
> + uint16_t deviceid;
> + uint8_t grab_mode;
> + uint8_t paired_device_mode;
> + uint8_t owner_events;
> + uint8_t pad;
> + uint16_t mask_len;
> +} xXIGrabDeviceWithConfineReq;
> +
> +#define sz_xXIGrabDeviceWithConfineReq 28
> +
> +
> /**
> * Return codes from a XIPassiveGrabDevice request.
> */
> @@ -648,6 +669,26 @@ typedef struct {
> #define sz_xXIPassiveGrabDeviceReq 32
>
> typedef struct {
> + uint8_t reqType;
> + uint8_t ReqType; /**< Always ::X_XIPassiveGrabDeviceWithConfine */
> + uint16_t length; /**< Length in 4 byte units */
> + Time time;
> + Window grab_window;
> + Window confine_to;
> + Cursor cursor;
> + uint32_t detail;
> + uint16_t deviceid;
> + uint16_t num_modifiers;
> + uint16_t mask_len;
> + uint8_t grab_type;
> + uint8_t grab_mode;
> + uint8_t paired_device_mode;
> + uint8_t owner_events;
> + uint16_t pad1;
> +} xXIPassiveGrabDeviceWithConfineReq;
> +#define sz_xXIPassiveGrabDeviceWithConfineReq 36
> +
> +typedef struct {
> uint8_t repType; /**< Input extension major opcode */
> uint8_t RepType; /**< Always ::X_XIPassiveGrabDevice */
> uint16_t sequenceNumber;
> --
> 1.7.5.rc3
More information about the xorg-devel
mailing list