在Java IDE中停用MEvent.CASE

时间:2014-07-07 12:22:19

标签: java matlab ubuntu ide

我在运行Ubuntu 14.04 LTS的笔记本电脑上使用MATLAB R2014a,我遇到了一个相当恼人的问题。每当我在编辑器或主窗口中使用触摸板上的双指滚动手势时,命令窗口中会显示以下输出:

MEvent。 CASE!

当滚动工作时,当我继续执行手势时,这条线会一遍又一遍地输出。

有关如何阻止这种情况发生的任何想法?

注意:它也出现在Processing和Arduino IDE enter image description here

5 个答案:

答案 0 :(得分:19)

作为用户,每次打开MATLAB时我都不想输入上面的命令。所以我在matlab上搜索了一下' startup'命令行部分, 和search path'部分。我在完成以下简单步骤后解决了我的问题:

  1. 在MATLAB控制台中输入 userpath ,查看您的用户路径:For linux它是:home / username / Documents / MATLAB /
  2. 创建一个文件     ' startup.m来'只有一行,这将禁用Mevent.CASE!     (下面是要复制的文字)

    !synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0
    
  3. 将创建的startup.m文件放在MATLAB中定义的userpath文件夹中。

  4. 现在,只要将此文件放在用户路径中,请重新启动MATLAB。
  5. 通过在工作区部分中查看ans = 0进行验证。
  6. 它在运行MATLAB R2015b的Ubuntu 15.04上对我有用,我希望它对你们所有人都有用。

    注意:这是对@someDude和@Slothworks答案的改进。

答案 1 :(得分:13)

这些解决方案都不适合我。此外,我喜欢保持两个手指滚动。 这对我有用:

MATLAB依赖于jdk7,jdk8无法使用它。它显示为16.04,之后不再在repos中提供openjdk-7-jre,并且必须从外部源安装。安装它:

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk

确保已正确设置MATLAB_JAVA变量。可以通过以下方式检查:

echo $MATLAB_JAVA

如果输出为空,则此变量为空。它可以用

设置
export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre

然后,使用用于调用MATLAB的任何命令从同一个shell执行MATLAB,通常是

matlab

在MATLAB命令窗口中,运行

version -java

并验证输出是否包含“OpenJDK”。如果一切都成功,你就不应再看到MEvent了。案件!错误信息。

使这个持久化: 添加

export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre        

/etc/profile文件(用于系统范围更改)或~/.profile用于本地用户

来源:https://www.reddit.com/r/matlab/comments/5anydi/how_to_stop_mevent_case_from_appearing/

答案 2 :(得分:7)

停用水平滚动可能会解决问题。尝试在gnome-terminal上运行以下命令:

synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0

或MATLAB console中的以下内容:

!synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0

(来源:http://www.mathworks.com/matlabcentral/answers/112528-mevent-case-when-two-finger-scrolling

答案 3 :(得分:0)

GNOME 3.20 :: SYNCLIENT已经过时, 修复MEvent。案件! MATLAB for xinput

中的错误

建议的解决方案是运行

!synclient HorizTwoFingerScroll=0

作为启动文件的一部分,禁用水平滚动。然而,这不适用于更新的Linux版本,因为不推荐使用synaptics触摸板驱动程序而转而使用libinput。然而,这个问题的新解决方案稍微复杂一些。 首先,我们需要从终端(而不是MATLAB命令窗口)使用xinput list命令找到触摸板设备的ID。你应该看到类似的东西:

~$ xinput list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=11   [slave  pointer  (2)]

我们对SynPS / 2 Synaptics TouchPad感兴趣,在这种情况下,id = 13。我们可以通过运行以下命令查看此设备支持的配置选项:

~$ xinput list-props 13

请记住将13更改为机器上触控板的ID!在输出中,您应该看到如下行:

Synaptics Two-Finger Scrolling (283):   1, 1

这告诉您在垂直和水平方向上启用了两个手指滚动。要更改此运行:

~$ xinput set-prop 13 "Synaptics Two-Finger Scrolling" 1 0

如果你找不到"双指滚动"一行都没有丢失。查找与水平滚动相关的行。就我而言:

libinput Horizonal Scroll Enabled (266):    1

以及用于禁用此属性的命令是:

~$ xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0

要在每次运行MATLAB时自动运行,您可以添加

!xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0

到您的启动文件。

答案 4 :(得分:0)

对于没有simulink但x-input的人 这是Riyas Jaleel对matlab中仅禁用水平滚动的改进,但在其他app中没有。

首先安装允许知道当前窗口名称的xdotool

sudo apt install xdotool

src:https://unix.stackexchange.com/questions/256713/how-to-execute-a-command-on-window-focus-unfocus

现在在matlab的bin文件夹中创建一个名为patchScroll.sh的脚本,其中包含以下内容

  while [ true ]
    do
        window=`xdotool getwindowfocus getwindowname`
        is_enabled=2
        if [ "$window" = "MATLAB R2017a" ]; then
            if [ "$is_enabled" != "0" ]; then
                xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0
                is_enabled=0
                echo "is_enable $is_enabled"
            fi
        else
            if [ "$is_enabled" != "1" ]; then
                xinput set-prop 13 "libinput Horizonal Scroll Enabled" 1
                is_enabled=1
                echo "is_enable $is_enabled"
            fi
        fi
        sleep 1
    done

现在在bin文件夹中的matlab文件中启动matlab 加 第一行和当前第二行之间的./patchScroll.sh &

我们不能直接将代码放在matlab文件中,因为循环是无限的,它会阻止matlab的启动,这就是我们使用& amp;最后。