Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mac OS X触控板水平滚动激活移位掩码_Java_Macos_Horizontal Scrolling_Trackpad - Fatal编程技术网

Java Mac OS X触控板水平滚动激活移位掩码

Java Mac OS X触控板水平滚动激活移位掩码,java,macos,horizontal-scrolling,trackpad,Java,Macos,Horizontal Scrolling,Trackpad,我在OSX上用一个神奇的触摸板检测到一些Java软件的奇怪行为。我可以发现,神奇之处在于,当执行水平“两个手指”滚动时,mouseweelevent的修饰符常量被设置为1,这相当于InputEvent.SHIFT\u MASK,从而使应用程序的行为就像用户按下了SHIFT键一样 如何区分Magic轨迹板上的水平滚动和普通的SHIFT+鼠标滚轮?使用InputEvent.SHIFT\u DOWN\u掩码显然会完全禁用对下移的检测 下面是一个代码段,其行为如上所述: @Override public

我在OSX上用一个神奇的触摸板检测到一些Java软件的奇怪行为。我可以发现,神奇之处在于,当执行水平“两个手指”滚动时,
mouseweelevent
的修饰符常量被设置为1,这相当于
InputEvent.SHIFT\u MASK
,从而使应用程序的行为就像用户按下了SHIFT键一样

如何区分Magic轨迹板上的水平滚动和普通的SHIFT+鼠标滚轮?使用
InputEvent.SHIFT\u DOWN\u掩码
显然会完全禁用对下移的检测

下面是一个代码段,其行为如上所述:

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

这让我很头疼。。感谢您的帮助-我的测试表明,如果您的两个手指的距离在刷卡过程中发生变化(类似挤压的操作),将设置shift键掩码,我们将不胜感激。如果您可以保持手指的距离完全相同,则永远不会设置shift键掩码