diff options
author | Simon Thum <simon.thum@gmx.de> | 2009-01-23 12:06:16 +0100 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-02-03 08:51:11 +1000 |
commit | 6bf6a4c47e94780bf0eef47702f21a505c336556 (patch) | |
tree | 3fb072340591ef4fd9fa46f9be719af109e50e72 /Xi/xiproperty.c | |
parent | 32adf8d34fb7db9b78859241f2670349b75c3f7e (diff) |
Xi: create well-known atoms on demand, rather than preinit them
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi/xiproperty.c')
-rw-r--r-- | Xi/xiproperty.c | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c index 3bc2818f0..f42adb8a5 100644 --- a/Xi/xiproperty.c +++ b/Xi/xiproperty.c @@ -97,7 +97,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 @@ -106,8 +106,16 @@ 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); + } + return dev_properties[i].type; + } } return 0; @@ -232,24 +240,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. |