mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
XkbSetNamedIndicator should ignore SD's without LED's
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 an 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@sun.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user