Opened 3 years ago

Last modified 3 years ago

#17410 new enhancement

Deskbar type-ahead filtering — at Version 3

Reported by: kallisti5 Owned by: jscipione
Priority: normal Milestone: Unscheduled
Component: Applications/Deskbar Version: R1/Development
Keywords: ux modern Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by kallisti5)

Today, if you open the applications menu in deskbar, and press a letter on your keyboard a seemingly random application is opened.

(Example, I open applications, press 't' and Art Paint opens with a flicker of it's menu item)

This doesn't really work well and seems incomplete. Maybe we can sneak a little type-ahead selection in here?

  1. Open applications menu
  2. Type 'ter' which would highlight the terminal menu item
  3. Press enter to open it

The above workflow would be helpful with large lists of applications, while not disrupting the feng-shui of Deskbar.

I'm not sure how possible this is in BMenu's, but it might be possible.

Change History (3)

comment:1 by kallisti5, 3 years ago

We spoke about this a little in IRC.

So, BMenu random chooses a shortcut for each menu item based on the first letter. if multiple things use the first letter the next is used, etc.

This really isn't super useful since BMenu doesn't display this shortcut anywhere. In BeOS and past operating systems, you could hold a modifier to "show" which shortcut was automatically chosen (underline the letter in the menu items). I don't think we have this?

Overall, we could implement typeahead in *all* BMenu's.

  1. Begin typing the name of the item
  2. Letters get underlined / highlighted as you type
  3. Type something that doesn't exist, and the highlight flickers and disappears
Last edited 3 years ago by kallisti5 (previous) (diff)

comment:2 by kallisti5, 3 years ago

https://review.haiku-os.org/c/haiku/+/2284 was raised by X512 as something which makes some related changes.

comment:3 by kallisti5, 3 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.