【问题标题】:Mac OS X trackpad horizontal scroll activates Shift MaskMac OS X 触控板水平滚动激活 Shift Mask
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2014-02-04
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      相关资源
      最近更新 更多