2013-03-19 7 views
8

Ich habe alle über sieht, und war schockiert, nicht in der Lage sein, etwas zu diesem Thema zu finden.Scrollrad Ereignis in X11

Ich möchte nur Ereignisse von einem einfachen Mausrad erfassen können.

Antwort

6

Ja, das ist unglaublich verwirrend. Das ist, weil X11 entschieden Mausrad Ereignisse als Maustaste 4 und 5 Empfangen Scrollrad Ereignisse ist die gleiche wie empfängt Maustaste drücken Ereignisse (Events Button gemäß /usr/include/X11/X.h) zuzuweisen. Beachten Sie auch, dass die Headerdatei Button1..Button5 definiert. Die Knöpfe 4 und 5 entsprechen der oberen oder unteren - vielleicht nicht diese Reihenfolge, Sie müssen dies empirisch bestimmen. Die Header-Datei erwähnt nie Scrollrad-Ereignisse.

Glücklicherweise bieten APIs auf höheren Ebenen (wie GDK) explizit die Unterstützung von Scrollrädern nach Namen.

+0

Auch nicht, dass jedes "Häkchen" des Scrollrads sowohl ein Press- als auch ein Release-Ereignis erzeugt, direkt nacheinander. Sie können die Release-Ereignisse für diese Schaltflächen ignorieren. – JvO

+1

@MultimediaMike Also habe ich _finally_ eine Chance bekommen, daran zu arbeiten. Ein Teil meines anfänglichen Problems war, dass ich die richtigen Ereignisse nicht erfasst habe. Zwei Fragen: Ist der gescrollte Betrag angegeben (oder sind es nur mehrere Ereignisse), und wie wird das horizontale Scrollen durchgeführt? – imallett

+0

@imallet Um das horizontale Scrollen zu ermöglichen, müssen Sie auf die Tasten 6 und 7 achten, die links und rechts entsprechen. – matteodelabre