score:1

Accepted answer

this is an issue with a known bug in ubuntu (cf. the related eclipse bug report, discussion on ubuntuforums.org).

to fix this, start the application by setting the ubuntu_menuproxy environment variable to 0. this forces the application to use the menu bar inside the application window instead of the (cursed! cursed! cursed!) unity global menu.

unfortunately, there seems to be no way yet to set environment variables on startup (via launcher argument or <application>.ini), but there are two bugs (this one and this one) which request just this, so if you, too, need this, vote them up or take a stab at implementing this...

in the meantime, you can include a custom shell script in the build that users can choose to use for starting the application. this script is very simple:

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

if you have a feature-based product, you can also include this script in the build just for products built for linux. to do so, add the script to the root path of your main feature, and add the following lines to your feature's 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

Related Query

More Query from same tag