Opened 11 years ago
Last modified 5 years ago
#9876 assigned bug
[Interface Kit] diagonal mouse support doesn't always work as expected
Reported by: | diver | Owned by: | X512 |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Kits/Interface Kit | Version: | R1/Development |
Keywords: | Cc: | stippi | |
Blocked By: | Blocking: | ||
Platform: | All |
Description (last modified by )
Menu doesn't get selected under some specific circumstances.
- open /boot
- right click system folder
- place cursor above the folder icon
- start moving cursor horizontally to the right from the icon to letter m (as in system)
- without stopping continue moving cursor vertically down to Edit name menu item and leave it there
At this point Edit name should be selected, but it didn't, like if it got stuck on the first menu item. Interestingly, if you move your cursor the same way from system to Mount (which has a submenu) it get selected.
Probably it has something to do with diagonal mouse support #284/hrev24193.
Maybe some ideas can be taken from this research: http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown
Attachments (1)
Change History (6)
by , 11 years ago
comment:1 by , 11 years ago
Description: | modified (diff) |
---|
comment:2 by , 11 years ago
Description: | modified (diff) |
---|
comment:3 by , 11 years ago
comment:4 by , 10 years ago
The problem with the timeout is that when it expires, we don't select the menu the mouse is over immediately. Instead we do that at the next mouse move.
comment:5 by , 5 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
I'm pretty sure we do the diagonal "triangle" movement tracking shown in that blog post, but I suspect the missing element is time. At some point after the user stops moving the mouse the diagonal sub-menu tracking should give up and the current hovered-over item should be selected.
The only issue in trying to fix this is our menu-tracking code is quite complicated and hard-to-change. I've seriously considered trying to sit down and completely redo it, using a more object-oriented approach, but that is hard due to lack of time and of course the fact that our current menu code is already so complicated one would need a very good test suite to make sure nothing is broken in a redesign.
Some have suggested just waiting until after R1 is released to do a menu redesign as part of a new menu API (as supposedly part of the current difficulty is due to the BeOS menu classes design), but I don't think that is a very good excuse.
As for this ticket: it would be cool if Haiku could be one of the only modern operating systems to have menus actually work properly like they did in the original Mac OS.