Eclipse RCP:命令的键绑定有效,但菜单中不显示快捷方式

时间:2015-11-21 21:13:15

标签: eclipse menu eclipse-plugin eclipse-rcp key-bindings

注意:我认为这不是Eclipse Editor plug-in key binding not shown in menu for command的重复!

我有一个基于Mars(4.5)的Eclipse RCP应用程序,它不使用任何e4功能。我已经定义了自己的密钥方案,以及plugin.xml中命令的一些键绑定。它们工作正常,当我从IDE启动我的应用程序时,菜单条目在实际命令文本旁边的菜单中显示快捷方式文本(例如CTRL + Q),例如

Quit CTRL+Q

但是,当我构建我的产品(包含plugin_customizations.ini)并运行它时,键绑定仍可正常工作,但实际的快捷方式文本不再显示在菜单中。

如何解决此问题,以便再次在产品版本中显示文字?

编辑:这是在Ubuntu 14.04(Unity)上。

从IDE启动,显示快捷方式文本:

With shortcut, started from IDE

从构建的产品开始,同一系统:

enter image description here

1 个答案:

答案 0 :(得分:1)

这是Ubuntu中已知错误的问题(参见related Eclipse bug reportdiscussion on ubuntuforums.org)。

要解决此问题,请通过将UBUNTU_MENUPROXY环境变量设置为0来启动应用程序。这会强制应用程序使用应用程序窗口中的菜单栏而不是( cursed!cursed!cursed!)Unity全局菜单。

不幸的是,似乎还没有办法在启动时设置环境变量(通过启动器参数或<application>.ini),但有两个错误(this onethis one)请求就是这样,所以如果你也需要这个,那么就把它们投票或者实施这个......

与此同时,您可以在构建中包含一个自定义shell脚本,用户可以选择将其用于启动应用程序。这个脚本很简单:

#/bin/bash
UBUNTU_MENUPROXY=0 ./{your-application-launcher}

如果您有基于功能的产品,则还可以在构建中包含此脚本,仅适用于为Linux构建的产品。为此,请将脚本添加到主要功能的根路径中,并将以下行添加到功能build.properties

root.linux.gtk.x86.permissions.755=launcher-unity.sh
root.linux.gtk.x86_64.permissions.755=launcher-unity.sh
root.linux.gtk.x86=file:launcher-unity.sh
root.linux.gtk.x86_64=file:launcher-unity.sh