0

我在带有Magic Trackpad的 OS X 上检测到某些 Java 软件的一些奇怪行为。我可以检测到神奇之处在于,当执行水平“双指”滚动时,修饰符常量MouseWheelEvent设置为 1,这InputEvent.SHIFT_MASK与按下。

如何区分 Magic Trackpad 上的水平滚动和常见的 SHIFT+鼠标滚轮?使用InputEvent.SHIFT_DOWN_MASK显然会完全停用 SHIFT down 的检测。

这是一个行为如上所述的代码片段:

@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);
    [...]
}

这让我很头疼。感谢您的帮助 - 将不胜感激

4

1 回答 1

0

从我的测试看来,如果在滑动过程中您的两根手指的距离发生变化(类似捏合的操作),则将设置换档键掩码。如果您可以将手指保持严格相同的距离,则永远不会设置换档键掩码。

于 2013-08-10T13:56:38.120 回答