WIP: Add click out event to fix context menus

This commit is contained in:
Mikayla Maki 2023-06-28 09:29:49 -07:00
parent 6c53653831
commit 18dd3102bf
No known key found for this signature in database
4 changed files with 75 additions and 13 deletions

View file

@ -301,18 +301,23 @@ impl ContextMenu {
cx: &mut ViewContext<Self>,
) {
let mut items = items.into_iter().peekable();
if items.peek().is_some() {
self.items = items.collect();
self.anchor_position = anchor_position;
self.anchor_corner = anchor_corner;
self.visible = true;
self.show_count += 1;
if !cx.is_self_focused() {
self.previously_focused_view_id = cx.focused_view_id();
}
cx.focus_self();
} else {
dbg!(self.visible);
if (self.visible) {
self.visible = false;
} else {
if items.peek().is_some() {
self.items = items.collect();
self.anchor_position = anchor_position;
self.anchor_corner = anchor_corner;
self.visible = true;
self.show_count += 1;
if !cx.is_self_focused() {
self.previously_focused_view_id = cx.focused_view_id();
}
cx.focus_self();
} else {
self.visible = false;
}
}
cx.notify();
}