mirror of
https://github.com/zed-industries/zed.git
synced 2025-02-06 10:42:08 +00:00
ui: Make custom rows in ContextMenu
s use a normal cursor (#15239)
Some checks are pending
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Waiting to run
CI / (Linux) Run Clippy and tests (push) Waiting to run
CI / (Windows) Run Clippy and tests (push) Waiting to run
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Some checks are pending
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Waiting to run
CI / (Linux) Run Clippy and tests (push) Waiting to run
CI / (Windows) Run Clippy and tests (push) Waiting to run
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
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…
Reference in a new issue