2013-03-19 2 views
8

Я просмотрел весь текст и был шокирован тем, что не смог найти что-либо по этой теме.Scrollwheel Event в X11

Я просто хочу, чтобы иметь возможность захватывать события с простого прокрутки мыши.

ответ

6

Да, это невероятно сбивает с толку. Это потому, что X11 решил назначить события колесика мыши как кнопки мыши 4 и 5. Получение событий прокрутки - это то же самое, что и при нажатии кнопок мыши (события ButtonPress в соответствии с /usr/include/X11/X.h). Также обратите внимание, что файл заголовка определяет Button1..Button5. Кнопки 4 и 5 соответствуют вверх или вниз - возможно, не этот порядок, вам придется определить это эмпирически. В файле заголовка никогда не упоминаются события прокрутки.

К счастью, API более высокого уровня (например, GDK) явно предоставляют поддержку прокрутки через имя.

+0

Также не следует, чтобы каждый «тик» прокрутки приводил к событию «Пресса» и «Релиз» сразу после друг друга. Вы можете безопасно игнорировать события Release для этих кнопок. – JvO

+1

@MultimediaMike Итак, у меня есть шанс поработать над этим. Ранее часть моей первоначальной проблемы заключалась в том, что я не фиксировал правильные события. Два вопроса: указано ли количество прокрученных (или это просто несколько событий) и как выполняется горизонтальная прокрутка? – imallett

+0

@imallet Для управления горизонтальной прокруткой вам необходимо прослушать кнопки 6 и 7, соответствующие левому и правому. – matteodelabre