mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-26 08:31:04 +00:00
Hide user menu on second click
This commit is contained in:
parent
2ddf0e12bf
commit
456be1f86e
1 changed files with 40 additions and 37 deletions
|
@ -49,7 +49,7 @@ pub struct CollabTitlebarItem {
|
||||||
client: Arc<Client>,
|
client: Arc<Client>,
|
||||||
workspace: WeakViewHandle<Workspace>,
|
workspace: WeakViewHandle<Workspace>,
|
||||||
contacts_popover: Option<ViewHandle<ContactsPopover>>,
|
contacts_popover: Option<ViewHandle<ContactsPopover>>,
|
||||||
user_menu: ViewHandle<ContextMenu>,
|
user_menu: Option<ViewHandle<ContextMenu>>,
|
||||||
_subscriptions: Vec<Subscription>,
|
_subscriptions: Vec<Subscription>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,18 +170,13 @@ impl CollabTitlebarItem {
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
let view_id = cx.view_id();
|
|
||||||
Self {
|
Self {
|
||||||
workspace: workspace.weak_handle(),
|
workspace: workspace.weak_handle(),
|
||||||
project,
|
project,
|
||||||
user_store,
|
user_store,
|
||||||
client,
|
client,
|
||||||
contacts_popover: None,
|
contacts_popover: None,
|
||||||
user_menu: cx.add_view(|cx| {
|
user_menu: None,
|
||||||
let mut menu = ContextMenu::new(view_id, cx);
|
|
||||||
menu.set_position_mode(OverlayPositionMode::Local);
|
|
||||||
menu
|
|
||||||
}),
|
|
||||||
_subscriptions: subscriptions,
|
_subscriptions: subscriptions,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -294,7 +289,14 @@ impl CollabTitlebarItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn toggle_user_menu(&mut self, _: &ToggleUserMenu, cx: &mut ViewContext<Self>) {
|
pub fn toggle_user_menu(&mut self, _: &ToggleUserMenu, cx: &mut ViewContext<Self>) {
|
||||||
self.user_menu.update(cx, |user_menu, cx| {
|
if self.user_menu.take().is_none() {
|
||||||
|
let mut user_menu = cx.add_view(|cx| {
|
||||||
|
let view_id = cx.view_id();
|
||||||
|
let mut menu = ContextMenu::new(view_id, cx);
|
||||||
|
menu.set_position_mode(OverlayPositionMode::Local);
|
||||||
|
menu
|
||||||
|
});
|
||||||
|
user_menu.update(cx, |user_menu, cx| {
|
||||||
let items = if let Some(_) = self.user_store.read(cx).current_user() {
|
let items = if let Some(_) = self.user_store.read(cx).current_user() {
|
||||||
vec![
|
vec![
|
||||||
ContextMenuItem::action("Settings", zed_actions::OpenSettings),
|
ContextMenuItem::action("Settings", zed_actions::OpenSettings),
|
||||||
|
@ -320,6 +322,8 @@ impl CollabTitlebarItem {
|
||||||
|
|
||||||
user_menu.show(Default::default(), AnchorCorner::TopRight, items, cx);
|
user_menu.show(Default::default(), AnchorCorner::TopRight, items, cx);
|
||||||
});
|
});
|
||||||
|
self.user_menu = Some(user_menu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_toggle_contacts_button(
|
fn render_toggle_contacts_button(
|
||||||
|
@ -695,11 +699,10 @@ impl CollabTitlebarItem {
|
||||||
)
|
)
|
||||||
.contained(),
|
.contained(),
|
||||||
)
|
)
|
||||||
.with_child(
|
.with_children(
|
||||||
ChildView::new(&self.user_menu, cx)
|
self.user_menu
|
||||||
.aligned()
|
.as_ref()
|
||||||
.bottom()
|
.map(|menu| ChildView::new(&menu, cx).aligned().bottom().right()),
|
||||||
.right(),
|
|
||||||
)
|
)
|
||||||
.into_any()
|
.into_any()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue