FreeBSD, nvidia, xorg und viele Tastendrücke

Warum trifft es immer mich?
Ich spiele mal wieder mit FreeBSD, diesmal auf dem “grossen” Rechner. Also 3 Grafikkarten mit dann sinnigerweise 3 Screens.

Habe die i386 Version von FreeBSD 8.0-RC1 benutzt, xorg-server aus den Ports zusammengebaut. Wenn der X-Server läuft und man z.B. die Backspace Taste gedrückt hält, schmiert der X mit Sig 11 ab.

Bugreport: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/133946

Da ich entweder zu dämlich bin den Patch da herunterzubekommen, habe ich mir den mal selbst zusammengeklöppelt:

diff -u -p dix/events.c.orig dix/events.c
— dix/events.c.orig
+++ dix/events.c
@@ -625,6 +625,23 @@ XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev)

if (xE && !syncEvents.playingEvents)
{
+        /* GetPointerEvents() guarantees that pointer events have the correct
+           rootX/Y set already. */
+        switch(xE->u.u.type)
+        {
+            case ButtonPress:
+            case ButtonRelease:
+            case MotionNotify:
+                break;
+            default:
+                if (xE->u.u.type == DeviceButtonPress ||
+                        xE->u.u.type == DeviceButtonRelease ||
+                        xE->u.u.type == DeviceMotionNotify)
+                    break;
+                /* all other events return FALSE */
+                return FALSE;
+        }
+
/* Motion events entering DIX get translated to Screen 0
coordinates.  Replayed events have already been
translated since they’ve entered DIX before */

Vielleicht brauch den auch jemand, so wie ich.

Viel Spass!

Kommentieren ist momentan nicht möglich.