ui: Make custom rows in ContextMenu
s use a normal cursor (#15239)
This PR makes custom rows in `ContextMenu`s use a regular cursor instead of a pointer. Even though custom rows were marked as not selectable, we would still pass a click handler to them, causing the `ListItem` to show a pointer cursor. Release Notes: - N/A
This commit is contained in:
parent
4000b0a02c
commit
95d82f88de
1 changed files with 12 additions and 13 deletions
|
@ -149,8 +149,7 @@ impl ContextMenu {
|
|||
}
|
||||
|
||||
pub fn label(mut self, label: impl Into<SharedString>) -> Self {
|
||||
let label = label.into();
|
||||
self.items.push(ContextMenuItem::Label(label));
|
||||
self.items.push(ContextMenuItem::Label(label.into()));
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -295,9 +294,9 @@ impl ContextMenu {
|
|||
impl ContextMenuItem {
|
||||
fn is_selectable(&self) -> bool {
|
||||
match self {
|
||||
ContextMenuItem::Separator => false,
|
||||
ContextMenuItem::Label { .. } => false,
|
||||
ContextMenuItem::Header(_) => false,
|
||||
ContextMenuItem::Header(_)
|
||||
| ContextMenuItem::Separator
|
||||
| ContextMenuItem::Label { .. } => false,
|
||||
ContextMenuItem::Entry { .. } => true,
|
||||
ContextMenuItem::CustomEntry { selectable, .. } => *selectable,
|
||||
}
|
||||
|
@ -428,19 +427,19 @@ impl Render for ContextMenu {
|
|||
} => {
|
||||
let handler = handler.clone();
|
||||
let menu = cx.view().downgrade();
|
||||
let selectable = *selectable;
|
||||
ListItem::new(ix)
|
||||
.inset(true)
|
||||
.selected(if *selectable {
|
||||
.selected(if selectable {
|
||||
Some(ix) == self.selected_index
|
||||
} else {
|
||||
false
|
||||
})
|
||||
.selectable(*selectable)
|
||||
.on_click({
|
||||
let context = self.action_context.clone();
|
||||
let selectable = *selectable;
|
||||
move |_, cx| {
|
||||
if selectable {
|
||||
.selectable(selectable)
|
||||
.when(selectable, |item| {
|
||||
item.on_click({
|
||||
let context = self.action_context.clone();
|
||||
move |_, cx| {
|
||||
handler(context.as_ref(), cx);
|
||||
menu.update(cx, |menu, cx| {
|
||||
menu.clicked = true;
|
||||
|
@ -448,7 +447,7 @@ impl Render for ContextMenu {
|
|||
})
|
||||
.ok();
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
.child(entry_render(cx))
|
||||
.into_any_element()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue