2013-03-19 2 views
8

나는 다 보았고 주제에 대해 아무것도 찾을 수 없다는 것에 충격을 받았다.X11의 스크롤 휠 이벤트

간단한 마우스 스크롤 휠에서 이벤트를 캡처하고 싶을뿐입니다.

답변

6

네, 이것은 매우 혼란 스럽습니다. X11이 마우스 스크롤 휠 이벤트를 마우스 버튼 4와 5로 지정하기로 결정했기 때문입니다. 스크롤 휠 이벤트 수신은 마우스 버튼 누르기 이벤트 수신과 동일합니다 (/usr/include/X11/X.h에 따라 ButtonPress 이벤트). 또한 헤더 파일은 Button1..Button5를 정의합니다. 버튼 4와 5는 위 또는 아래에 해당합니다. 어쩌면 그 순서가 아닐 수도 있습니다. 경험적으로 결정해야합니다. 헤더 파일은 결코 스크롤 휠 이벤트를 언급하지 않습니다.

고맙게도 GDK와 같은 상위 수준의 API는 명시 적으로 이름에 따라 스크롤 휠 지원을 제공합니다.

+0

또한 스크롤 휠의 '눈금'마다 서로 'Press'이벤트와 'Release'이벤트가 동시에 발생하지는 않습니다. 이러한 단추의 릴리스 이벤트는 무시해도됩니다. – JvO

+1

@MultimediaMike 그래서 저는이 일을 _finally_ 할 기회를 얻었습니다. 초기 문제의 일부는 이전에 올바른 이벤트를 포착하지 못하고있었습니다. 두 가지 질문 : 지정된 스크롤 량 (또는 여러 이벤트 일까?)과 수평 스크롤은 어떻게 수행됩니까? – imallett

+0

@imallet 가로 스크롤을 처리하려면 왼쪽과 오른쪽에 해당하는 버튼 6과 7을 청취해야합니다. – matteodelabre