Как мое приложение macOS Java может отличать guish события колеса горизонтальной прокрутки от событий вертикальной прокрутки при нажатой клавише Shift? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть приложение Java, которое использует возможности горизонтальной и вертикальной прокрутки мыши и волкодана Apple Magi c. Проблема заключается в том, что Java AWTEvent, представляющее событие горизонтального колеса мыши, совпадает с событием вертикальной прокрутки, но с добавленным к нему модификатором SHIFT_DOWN.

Это проблема для меня: если пользователь У меня есть физическая клавиша Shift, я не могу определить, является ли событие колеса вертикальным или горизонтальным событием. Я знаю, что это работает в некоторых собственных приложениях Apple, таких как Safari (удержание физической клавиши Shift не преобразует событие вертикальной прокрутки в горизонтальное), поэтому, если это возможно на других языках (например, Obj- C? ), тогда может работать в Java, это просто вопрос кода.

Я ищу код в macosx-порте OpenJDK, где происходит событие колеса ОС преобразован в AWTEvent, надеясь найти системное свойство, свойство клиента или каким-либо другим способом, которым приложение могло бы изменить процесс так, чтобы клавиша Shift не включалась в событие h.scroll (возможно, создание подклассов и изменение метода ?). В любом случае мне нужно знать, где искать, чтобы углубиться в это. Я клонировал репозиторий Mercurial для macosx-port , но поиск по коду с использованием grep -R не был очень полезным.

Заранее спасибо за любые указатели (или ссылки , поскольку это Java), что вы можете предоставить.

...