注意:我认为这不是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启动,显示快捷方式文本:
从构建的产品开始,同一系统:
答案 0 :(得分:1)
这是Ubuntu中已知错误的问题(参见related Eclipse bug report,discussion on ubuntuforums.org)。
要解决此问题,请通过将UBUNTU_MENUPROXY
环境变量设置为0
来启动应用程序。这会强制应用程序使用应用程序窗口中的菜单栏而不是( cursed!cursed!cursed!)Unity全局菜单。
不幸的是,似乎还没有办法在启动时设置环境变量(通过启动器参数或<application>.ini
),但有两个错误(this one和this 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