【发布时间】:2013-04-17 16:01:22
【问题描述】:
我在带有 Magic Trackpad 的 OS X 上检测到某些 Java 软件的一些奇怪行为。我可以检测到神奇之处在于,当执行水平“双指”滚动时,MouseWheelEvent 的修饰符常量设置为 1,这相当于 InputEvent.SHIFT_MASK,从而导致应用程序运行就像用户按下了 SHIFT 一样。
如何区分 Magic Trackpad 上的水平滚动和普通的 SHIFT+鼠标滚轮?使用 InputEvent.SHIFT_DOWN_MASK 显然会完全停用 SHIFT down 的检测。
这是一个代码sn-p,其行为如上所述:
@Override
public void mouseWheelMoved(@NotNull MouseWheelEvent e) {
int unitsToScroll = e.getUnitsToScroll();
int modifiers = e.getModifiers();
boolean shiftDown = ((modifiers & InputEvent.SHIFT_MASK) != 0);
boolean ctrlDown = ((modifiers & InputEvent.CTRL_MASK) != 0);
[...]
}
这让我很头疼。感谢您的帮助 - 我们将不胜感激
【问题讨论】:
标签: java macos horizontal-scrolling trackpad