Eclipse RCP : Key binding for commands work, 但菜单中未显示快捷方式

标签 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 中命令的一些按键绑定(bind)。它们工作正常,当我从 IDE 启动我的应用程序时,菜单条目会在菜单中的实际菜单旁边显示快捷方式文本(例如,CTRL + Q)命令文本,例如

Quit CTRL+Q

但是,当我构建我的产品(包括 plugin_customizations.ini)并运行它时,键绑定(bind)仍然有效,但实际的快捷方式文本未显示在不再有菜单了。

如何修复此问题以便文本再次显示在产品版本中?

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

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

With shortcut, started from IDE

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

enter image description here

最佳答案

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

要解决此问题,请通过设置 UBUNTU_MENUPROXY 来启动应用程序环境变量为0 。这会强制应用程序使用应用程序窗口内的菜单栏,而不是(诅咒!诅咒!诅咒!)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

关于Eclipse RCP : Key binding for commands work, 但菜单中未显示快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33848634/

相关文章:

jquery - 导航菜单带有漂亮的 jquery fadeIn fadeOut 动画按钮鼠标悬停

java - 调试已编译的 Java Equinox 程序

html - 当只有一个悬停时,防止多个子菜单同时可见(由于转换延迟)

Android:使用不断变化的 fragment 改变菜单项的可见性

eclipse - 我可以使用 Groovy 编写 Eclipse 插件吗?

google-app-engine - AppEngine 开发服务器在 JSP 中给出 StackOverflowError

java - 获取编辑器的内容

eclipse - 如何使用 Eclipse CDT 构建 SCons 项目?

java - JSF2.0 + Eclipse

java - 为什么此代码会生成 "Potential resource leak"警告?