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 <[email protected]> --- 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 _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
