I've noticed a bit of a shortcoming in the menu specification. It seems there's no way for a menu editor to provide menus that override parts of a .desktop file, like say the "no display" attribute, without copying the complete .desktop file to the user's menu directory. This seems a bit strange to me, since it would seem to be a pretty common case. The problem comes in the following instance:
1. User installs package XYZ (which has nodisplay=true in xyz.desktop, so doesn't show up in the menus by default)
2. User runs a menu editor and sets it to display, causing the menu editor to copy the .desktop file to ~/.menus/ with nodisplay=false
3. User upgrades package XYZ which has changed its binary's name to xyz2
4. User's menu has now broken
This could be fixed by changing either the .menu spec, allowing overrides to be placed there, perhaps as an attribute to <Include>, or by changing the .desktop spec to allow files like this:
[Desktop Entry]
Inherits=true
NoDisplay=false
which would then inherit all other properties from any previous file with the same desktop id.
The big downside to this is that all properties now have to be Optional, and this could cause even more trouble. So there's probably a better solution out there that doesn't suffer from this problem.
Pete
_______________________________________________ xdg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xdg
