Centralize logic around which keybind to display (#25215)
Closes #24931 We've flipped back and forth at least once on whether the last or first added keybinding should be shown in different contexts (See [this](https://github.com/zed-industries/zed/issues/23621#issuecomment-2614061385) as well as #23621 and the subsequent #23660) This PR attempts to pick a side to stick with so that we are at least consistent until #23660 is resolved and we have a way to determine which keybinds to display in a manner that is both consistent and not confusing Release Notes: - N/A
This commit is contained in:
parent
d4392aaf2d
commit
b84aec0fae
3 changed files with 30 additions and 19 deletions
|
@ -290,15 +290,10 @@ impl MacPlatform {
|
|||
action,
|
||||
os_action,
|
||||
} => {
|
||||
// Note that this is not the standard logic for selecting which keybinding to
|
||||
// display. Typically the last binding takes precedence for display. However, in
|
||||
// this case the menus are not updated on context changes. To make these bindings
|
||||
// more likely to be correct, the first binding instead takes precedence (typically
|
||||
// from the base keymap).
|
||||
let keystrokes = keymap
|
||||
.bindings_for_action(action.as_ref())
|
||||
.next()
|
||||
.map(|binding| binding.keystrokes());
|
||||
let keystrokes = crate::Keymap::binding_to_display_from_bindings(
|
||||
keymap.bindings_for_action(action.as_ref()),
|
||||
)
|
||||
.map(|binding| binding.keystrokes());
|
||||
|
||||
let selector = match os_action {
|
||||
Some(crate::OsAction::Cut) => selector("cut:"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue