[PATCH] XkbSetNamedIndicator should ignore SD's without LED's
Alan Coopersmith
alan.coopersmith at sun.com
Sat May 2 00:34:02 PDT 2009
When ProcXkbSetNamedIndicator is called on a core device, and we
walk the slaves to set the LED's on each of them, ignore any slaves
that do not have either a KbdFeedbackCtrl or LedCtrl structure.
(This is much more critical in xserver-1.5-branch, where we walk
*all* devices, not just the slaves of the specified master, and
thus return failure when setting LED on the Core Keyboard and
hit a xf86-input-mouse device with no LED's to set.)
Signed-off-by: Alan Coopersmith <alan.coopersmith at sun.com>
---
xkb/xkb.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/xkb/xkb.c b/xkb/xkb.c
index e7c9a31..7673411 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -3433,6 +3433,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
for (other = inputInfo.devices; other; other = other->next)
{
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
+ ( other->kbdfeed || other->leds ) &&
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
{
rc = _XkbCreateIndicatorMap(other, stuff->indicator,
@@ -3456,6 +3457,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
for (other = inputInfo.devices; other; other = other->next)
{
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
+ ( other->kbdfeed || other->leds ) &&
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
{
_XkbSetNamedIndicator(client, other, stuff);
--
1.5.6.5
More information about the xorg-devel
mailing list