[PATCH] Xi: define a default range of axis labels.
Peter Hutterer
peter.hutterer at who-t.net
Mon Feb 2 14:56:32 PST 2009
On Fri, Jan 23, 2009 at 12:06:16PM +0100, Simon Thum wrote:
> Peter Hutterer wrote:
> > patches welcome :)
> Here y'r. :)
>
> From e25f0f7c38c9f5d5cfab4a20fe42ee5cbf38d012 Mon Sep 17 00:00:00 2001
> From: Simon Thum <simon.thum at gmx.de>
> Date: Fri, 23 Jan 2009 11:39:56 +0100
> Subject: [PATCH] xinput: create well-known atoms on demand, rather than preinit them
>
> ---
> Xi/extinit.c | 1 -
> Xi/xiproperty.c | 32 ++++++++++++--------------------
> Xi/xiproperty.h | 2 --
> 3 files changed, 12 insertions(+), 23 deletions(-)
>
> diff --git a/Xi/extinit.c b/Xi/extinit.c
> index 62ec958..a7a21ec 100644
> --- a/Xi/extinit.c
> +++ b/Xi/extinit.c
> @@ -1143,7 +1143,6 @@ XInputExtensionInit(void)
> IEventBase = extEntry->eventBase;
> AllExtensionVersions[IReqCode - 128] = thisversion;
> MakeDeviceTypeAtoms();
> - XIInitKnownProperties();
> RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone);
> RegisterResourceName(RT_INPUTCLIENT, "INPUTCLIENT");
> FixExtensionEvents(extEntry);
> diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
> index 53b2f6a..db32735 100644
> --- a/Xi/xiproperty.c
> +++ b/Xi/xiproperty.c
> @@ -60,7 +60,7 @@ static struct dev_properties
> static long XIPropHandlerID = 1;
>
> /**
> - * Return the type assigned to the specified atom or 0 if the atom isn't known
> + * Return the atom assigned to the specified string or 0 if the atom isn't known
> * to the DIX.
> */
> Atom
> @@ -69,8 +69,18 @@ XIGetKnownProperty(char *name)
> int i;
> for (i = 0; i < (sizeof(dev_properties)/sizeof(struct dev_properties)); i++)
> {
> - if (strcmp(name, dev_properties[i].name) == 0)
> + if (strcmp(name, dev_properties[i].name) == 0){
> + if (dev_properties[i].type == None){
> + dev_properties[i].type =
> + MakeAtom(dev_properties[i].name,
> + strlen(dev_properties[i].name),
> + TRUE);
> + // Here we should probably die on failure.
> + // For now, leave it to the caller
> + }
> +
> return dev_properties[i].type;
> + }
> }
>
> return 0;
> @@ -195,24 +205,6 @@ XIPropToFloat(XIPropertyValuePtr val, int *nelem_return, float **buf_return)
> return Success;
> }
>
> -/**
> - * Init those properties that are allocated by the server and most likely used
> - * by the DIX or the DDX.
> - */
> -void
> -XIInitKnownProperties(void)
> -{
> - int i;
> - for (i = 0; i < (sizeof(dev_properties)/sizeof(struct dev_properties)); i++)
> - {
> - dev_properties[i].type =
> - MakeAtom(dev_properties[i].name,
> - strlen(dev_properties[i].name),
> - TRUE);
> - }
> -}
> -
> -
> /* Registers a new property handler on the given device and returns a unique
> * identifier for this handler. This identifier is required to unregister the
> * property handler again.
> diff --git a/Xi/xiproperty.h b/Xi/xiproperty.h
> index 12026e9..bf562b1 100644
> --- a/Xi/xiproperty.h
> +++ b/Xi/xiproperty.h
> @@ -43,6 +43,4 @@ void SRepXListDeviceProperties(ClientPtr client, int size,
> void SRepXGetDeviceProperty(ClientPtr client, int size,
> xGetDevicePropertyReply *rep);
>
> -void XIInitKnownProperties(void);
> -
> #endif /* XIPROPERTY_C */
> --
> 1.6.0.6
Pushed as 6bf6a4c47e94780bf0eef47702f21a505c336556, thanks.
Cheers,
Peter
More information about the xorg
mailing list