Bug 103041

Summary: Kmenu single sub-menu items don't display properly
Product: [Applications] kmenuedit Reporter: Fred Wells <fredcwells>
Component: generalAssignee: Unassigned bugs <unassigned-bugs-null>
Status: RESOLVED INTENTIONAL    
Severity: normal CC: fgouget, shoalcreek5
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Fred Wells 2005-04-02 00:47:20 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    SuSE RPMs
OS:                Linux

Sub-menus with a single item only display the sub-menu.  When you click on the sub-menu the item is instead invoked.  

Currently looks something like this:

All Applications
.
.
+My SubMenu1>
 -Sub1_Item1
 -Sub1_Item2
+My SubMenu2
.
.
#######################

Should look like this:

All Applications
.
.
+My_SubMenu1>
 -Sub1_Item1
 -Sub1_Item2
+My_SubMenu2
 -Sub2_Item1
.
.
Comment 1 Aaron J. Seigo 2005-04-02 01:06:42 UTC
this is intentional, to prevent single item submenus. this is part of the menu spec, controlled by "allow inline" and inline values.
Comment 2 Fred Wells 2005-04-02 20:14:24 UTC
This particular behavior is completely counter intuitive.  Standards/spec
compliance can be a good thing, but not always and (IMO) definitely not 
in this case.  Spec or not, it's simply not what the user intends and 
therefore shouldn't be.  If a user wishes to create a menu with a single
entry, that's what the user should get.  Let's stop second guessing the
end user and deciding for them what's best.  Can somebody explain why it's 
necessary to restrict single item submenus?  Is there some technical
complication to justify the spec?
Comment 3 Aaron J. Seigo 2005-04-02 20:34:32 UTC
actually, it was done in reaction to users having to deal with single entry submenus. there little difference between a submenu with 1 entry and an entry in the menu except for additional clicks and slower usage of a submenu. for usability in the common case this was done. 
Comment 4 Fred Wells 2005-04-02 20:44:33 UTC
At the very least then, list the single entry in the parent menu instead of
the menu.  Presently, it appears to the user that the single entry just
doesn't exist or is being disregarded.
Comment 5 Aaron J. Seigo 2005-04-04 00:29:14 UTC
please do not re-open bugs that belong to me that i have closed.

it has been marked as wontfix, which is where it will stay. you can already change this behaviour via the menu config.
Comment 6 Fred Wells 2005-04-04 01:38:49 UTC
I know you're as interested as I am in making KDE as usable as possible.  You
claim that the user can already change this via the menu config  HOW???  
There is no kmenuedit option to change this.

As for reopening this bug, my apologies.  I'm only trying to get the problem 
(and it is a problem) resolved.  Perhaps it should go onto the wish list.
Nonetheless, it's frustrating when developers seem so anxious to dismiss these
problems offhand without thoughtful consideration to the end user experience.

:)
Comment 7 Aaron J. Seigo 2005-04-04 01:45:58 UTC
let's see if we can get this in kmenuedit then =)
Comment 8 Fred Wells 2005-04-04 02:00:26 UTC
That'll work. :)
Comment 9 Francois Gouget 2006-06-17 19:02:52 UTC
To Fred's defense I'd say that I regularly get support requests concerning this 'feature'.

See, I work on CrossOver which lets users install Windows applications on Linux. For instance they can install the Microsoft Word Viewer and CrossOver will transfer the Windows menus to the KDE menus. As a result the user should see this:

K Menu
 + Windows Applications
   + Programs
     - Microsoft Word Viewer

But instead they see:

K Menu
 + Windows Applications
   - Programs

There 'Programs' has the Word Viewer icon, starts Word Viewer, but is called 'Programs'! Many users find this pretty confusing.

So I would say that this feature should at least keep the name of the menu item rather than the name of the menu folder.
Comment 10 Janet 2006-06-21 19:38:23 UTC
Hasn't this been fixed a long time ago? Luckily I do have single entry submenus.
Comment 11 Brice Hunt 2006-09-20 20:57:46 UTC
I have noticed various incorrect behaviors that may all be from the same bug.

In the main menu, I have one menu titled "Wine," that is built like this:
+ Wine
  + Programs
    - Prog 1
    - Prog 2

The Wine menu does not appear at all unless I put at least one (non-submenu) item directly under Wine, then it works exactly as you say it should.  I.e.:
+ Wine
  - Prog 1
  + Programs
    - Prog 2

appears in the menu as:
+ Wine
  - Prog 1
  - Prog 2

Also, if I add a second submenu, then it appears the way I want it to. I.e.:
+ Wine
  + Programs
    - Prog 1
    _ Prog 2
  + Uninstallers

Appears as:
+ Wine
  + Programs
    - Prog 1
    - Prog 2

The reason I have both items in a submenu is because I plan on adding another sub-menu later. I can work around the problem by adding the second (currently empty) sub-menu now, as I have described above, but I thought I would bring it to your attention.

Now as for the problem that Fred is having, I'm not sure where it comes from. I also have problems of a similar nature, but it is slightly more complicated than the way he is explaining.

Here are my examples. My Multimedia menu is saved as:
+ Multimedia
  + CD Player
    - KsCD
  + Jukebox
    - Juk
  .
  . Various other submenus with multiple entries & no problems
  .
  + Volume Control
    - KMix

The KMenu fails to show any of the single entry items at all; however, if I move just one of the single entry items out of its submenu, as follows:
+ Multimedia
  + CD Player
    - KsCD
  + Jukebox
    - Juk
  .
  . Various other submenus with multiple entries & no problems
  .
  - KMix

My KMenu appears as:
+ Multimedia
  .
  . Various other submenus with multiple entries & no problems
  .
  - KsCD
  - Juk
  - KMix

Also, if I change it to this:
+ Multimedia
  + CD Player
    - KsCD
  - Juk
  .
  . Various other submenus with multiple entries & no problems
  .
  + Volume Control
    - KMix

I get a different order:
+ Multimedia
  - KsCD
  - Juk
  - KMix
  .
  . Various other submenus with multiple entries & no problems
  .

I have to have at least one of the items saved outside of its submenu. It doesn't matter which item, but the one outside has to be located where I want all single menu items to appear.

Now for the really weird part, my Development menu has three different single items in their own submenus and no single items saved in the Development menu, thus:
+ Development
  + Building
    - KRPMBuilder
  .
  . Various other submenus with multiple entries & no problems
  .
  + Profiler
    - KCacheGrind
  .
  . Various other submenus with multiple entries & no problems
  .
  + Translation
    - QTLinguist

This menu appears as it should, with all single items at the bottom:
+ Development
  .
  . Various other submenus with multiple entries & no problems
  .
  - KCacheGrind
  - KRPMBuilder
  - QTLinguist

I tried manually reconstructing some of my weird menus with slightly different names just to see if there was something in the way Suse had the menus configured, but I get the exact same results every time--even with different names and even when I reconstruct all the individual items, one at a time, with a variation in the item names.

Now, it appears to me that something really strange is going on with the way menu items are handled. Maybe Suse has messed with it to the point that it isn't working properly, or maybe there is something in a Suse package that doesn't jive with the way the KMenu works, or maybe the KMenu sourcecode needs a thorough cleaning.  Whatever the problem, erratic handling of single item submenus is extremely annoying. I will spend what time I can looking for the cause(s), but I figured I would also alert you folks at KDE that this is a REAL problem (at least in Suse it is a real problem, I haven't yet tried any other distros to see if other distros suffer the same way).
Comment 12 Fred Wells 2008-12-06 23:12:26 UTC
As far as I can tell, this behavior no longer exists in KDE4.1.x.
Comment 13 Fred Wells 2009-02-01 02:23:51 UTC
This is an old KDE3 bug that was never assigned or addressed and it's clear that it won't be - especially as KDE4 takes the stage.  Thus, as the original reporter, I'm closing this as WONTFIX.