每当我向左、向右滚动或向上或向下滚动到边缘时,Matlab 中都会出现错误“MEvent.CASE!”。这真的很烦人,因为即使我在笔记本电脑的触摸板上向下滑动两根手指时,几乎不向左或向右移动,也会发生这种情况。
答案1
不确定这有多通用,但它在我的带有 Synaptic Touchpad 的 Ubuntu 16.04 上运行良好。
在终端中运行
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。
通过运行检查双指滚动设置
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
禁用水平滚动
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。