在 Matlab 中滚动会出现错误“MEvent.CASE!”

在 Matlab 中滚动会出现错误“MEvent.CASE!”

每当我向左、向右滚动或向上或向下滚动到边缘时,Matlab 中都会出现错误“MEvent.CASE!”。这真的很烦人,因为即使我在笔记本电脑的触摸板上向下滑动两根手指时,几乎不向左或向右移动,也会发生这种情况。

答案1

不确定这有多通用,但它在我的带有 Synaptic Touchpad 的 Ubuntu 16.04 上运行良好。

  1. 在终端中运行xinput list以查找触摸板 ID。

    test@laptop:~$ xinput list
    ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
    ⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
    ⎜   ↳ DLL075B:01 06CB:76AF Touchpad             id=11   [slave  pointer  (2)]
    

    即这里相关条目是id=11和id=15。

  2. 通过运行检查双指滚动设置xinput list-props 11,并xinput list-props 15检查哪些设置导致了 MATLAB 中的“MEvent.CASE!”错误。

    test@laptop:~$ xinput list-props 11
        Synaptics Two-Finger Scrolling (278):   1, 1
    
    test@laptop:~$ xinput list-props 15
        Synaptics Two-Finger Scrolling (278):   1, 1
    
  3. 禁用水平滚动

    xinput set-prop 11 "Synaptics Two-Finger Scrolling" 1 0
    

    xinput set-prop 15 "Synaptics Two-Finger Scrolling" 1 0
    

    如果此方法有效,您可以startup.m在 MATLAB 启动目录中创建一个脚本,该脚本会在每次打开 MATLAB 时自动执行。

    system('xinput set-prop 15 "Synaptics Two-Finger Scrolling" 1 0');
    system('xinput set-prop 11 "Synaptics Two-Finger Scrolling" 1 0');   
    

要找到要放置文件的 MATLAB 启动文件夹startup.m,请pwd在 MATLAB 控制台中写入。

答案2

正如 Ian Hunter 在 Mathworks 论坛上建议的那样,只需创建一个文件startup.m,其中包含关闭水平滚动的指令:

!synclient HorizEdgeScroll=0
!synclient HorizTwoFingerScroll=0

您可能需要以管理员身份打开编辑器才能保存到文件夹,例如sudo gedit。将上面的两行粘贴到新文件中,并在MATLAB/R201.../toolbox/local/文件夹中另存为 startup.m。

相关内容