[PATCH] dix: try to ring the bell even if the current device doesn't have one. (#24503)

Peter Hutterer peter.hutterer at who-t.net
Thu Feb 18 14:09:36 PST 2010

Evdev devices do not have the bell proc set, but XTEST devices do. By
exiting early, the bell only rings if the last keyboard used was the XTEST
keyboard and hence the bell proc is still set on the master but not if an
evdev keyboard was used last.

The better approach here is to try to ring the bell on all devices attached
to this master device in case one or more actually do produce an audible
sound. That's also XKB's behaviour if XkbUseCoreKbd is specified as device

X.Org Bug 24503 <http://bugs.freedesktop.org/show_bug.cgi?id=24503>

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Tested-by: Rafał Mużyło <galtgendo at o2.pl>
 dix/devices.c |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/dix/devices.c b/dix/devices.c
index b002150..6119dce 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -2020,14 +2020,6 @@ ProcBell(ClientPtr client)
 	return BadValue;
-    /* Seems like no keyboard actually has the BellProc set. Returning
-     * BadDevice (previous code) will make apps crash badly. The man pages
-     * doesn't say anything about a BadDevice being returned either.
-     * So just quietly do nothing and pretend everything has worked.
-     */
-    if (!keybd->kbdfeed->BellProc)
-        return Success;
     newpercent = (base * stuff->percent) / 100;
     if (stuff->percent < 0)
         newpercent = base + newpercent;

More information about the xorg-devel mailing list