Re: TODO: Improve Submenu Navigation



On Tue, 11 Apr 2000, Kim McCall wrote:

> I'm interested in volunteering to work on the "Improve Submenu
> Navigation" TODO item.
> 
> I'm a very competent programmer with absolutely no experience developing
> for Linux.  I've been rooting around a bit in the source as well as
> considering what the new behavior should be.  I've put together a web
> site to describe what I'm thinking and planning.  (Since this is my
> first Linux/GTK/GNOME project, I've developed a test app to hone my
> skills a bit and to test out my ideas once I start changing the menu
> code.)
> 
> Please check out
>   http://www.kimmccall.com/navigation/index.html
> and give me any feedback you think I need.

Howdy! I'm glad to see someone is working on this, this is a much-needed
feature! I just thought I'd post some comments in response to your web
site. 

The focus so-far in GTK+ has been in creating a "region" where the mouse
cursor can be without the submenu disappearing. I don't think that this is
the correct way to implement this. The way the Macintosh does this (and I
personally find the Mac implementation to be stellar), is with a
delay. Delay between an effect and it's cause is called "hysteresis", and
this is the basis of the Mac implementation. Instead of specifying a
region the mouse can stay in, they specify a fraction of a second within
which your mouse cursor can leave the parent menu item without the submenu
disappearing. While the cursor is outside the parent menu item, the
submenu stays up for the fraction of a second, but a different item in the
parent menu is selected. If you spend too long outside the parent menu
item (and of course, this is a very short timeout we're talking about
here, again), another submenu would come up. 

The other thing is, I think a time-delay would be easier to implement, but
that's just a gut feeling. Getting the submenu of a newly exited menu item
to delay a fraction of a second before disappearing, and the submenu of a
newly entered menu item to delay a fraction of a second before appearing
seems like a much easier task than creating regions, and tracking the
mouse cursor through them, etc. (Then again, that's just my opinion. I
could be (probably am) wrong). 

Here's an article that describes the Mac submenu hysteresis in more
detail: http://www.mackido.com/Interface/hysteresis.html . One of the
things he mentions is the same thing you touched on, that this behavior
should only be activated when the cursor is moving towards the submenu by
a noticable amount... 

Just some thoughts, 
  - David :) 
 
> Do I just continue developing, or is there some kind of
> assignment/delegation process?  Is there any menu guru I should run
> ideas past to avoid getting too far off track?
> 
> Thanks,
> Kim McCall
> 
> 
> 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]