From 9f6072c6b699a6eaa97e0ddcbeb7271a8afe2cd9 Mon Sep 17 00:00:00 2001 From: Mikayla Maki Date: Tue, 23 Jan 2024 15:26:11 -0800 Subject: [PATCH] Revert "Improve completion, action and shared project popovers' layout" --- .../incoming_call_notification.rs | 2 +- .../project_shared_notification.rs | 2 +- crates/editor/src/editor.rs | 17 +++------- crates/gpui/src/elements/uniform_list.rs | 33 +++---------------- crates/ui/src/components/list/list_item.rs | 1 - 5 files changed, 11 insertions(+), 44 deletions(-) diff --git a/crates/collab_ui/src/notifications/incoming_call_notification.rs b/crates/collab_ui/src/notifications/incoming_call_notification.rs index 32a8f19e30..f66194c52a 100644 --- a/crates/collab_ui/src/notifications/incoming_call_notification.rs +++ b/crates/collab_ui/src/notifications/incoming_call_notification.rs @@ -125,7 +125,7 @@ impl Render for IncomingCallNotification { cx.set_rem_size(ui_font_size); - h_flex().flex_grow().size_full().font(ui_font).child( + div().size_full().font(ui_font).child( CollabNotification::new( self.state.call.calling_user.avatar_uri.clone(), Button::new("accept", "Accept").on_click({ diff --git a/crates/collab_ui/src/notifications/project_shared_notification.rs b/crates/collab_ui/src/notifications/project_shared_notification.rs index af138f086b..b8ceefcd76 100644 --- a/crates/collab_ui/src/notifications/project_shared_notification.rs +++ b/crates/collab_ui/src/notifications/project_shared_notification.rs @@ -129,7 +129,7 @@ impl Render for ProjectSharedNotification { cx.set_rem_size(ui_font_size); - h_flex().flex_grow().size_full().font(ui_font).child( + div().size_full().font(ui_font).child( CollabNotification::new( self.owner.avatar_uri.clone(), Button::new("open", "Open").on_click(cx.listener(move |this, _event, cx| { diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 791a70608b..4be449f3cd 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -848,7 +848,7 @@ impl CompletionsMenu { .flex_1() .px_1p5() .py_1() - .min_w(px(160.)) + .min_w(px(260.)) .max_w(px(640.)) .w(px(500.)) .overflow_y_scroll() @@ -910,7 +910,7 @@ impl CompletionsMenu { None }; - h_flex().flex_grow().w_full().min_w(px(120.)).child( + div().min_w(px(220.)).max_w(px(540.)).child( ListItem::new(mat.candidate_id) .inset(true) .selected(item_ix == selected_item) @@ -925,7 +925,7 @@ impl CompletionsMenu { ) .map(|task| task.detach_and_log_err(cx)); })) - .child(h_flex().flex_grow().child(completion_label)) + .child(h_flex().overflow_hidden().child(completion_label)) .end_slot::
(documentation_label), ) }) @@ -934,9 +934,7 @@ impl CompletionsMenu { ) .max_h(max_height) .track_scroll(self.scroll_handle.clone()) - .with_width_from_item(widest_completion_ix) - .use_max_height() - .use_max_width(); + .with_width_from_item(widest_completion_ix); Popover::new() .child(list) @@ -1078,11 +1076,8 @@ impl CodeActionsMenu { let item_ix = range.start + ix; let selected = selected_item == item_ix; let colors = cx.theme().colors(); - h_flex() - .flex_grow() - .w_full() + div() .px_2() - .min_w(px(120.)) .text_color(colors.text) .when(selected, |style| { style @@ -1126,8 +1121,6 @@ impl CodeActionsMenu { .max_by_key(|(_, action)| action.lsp_action.title.chars().count()) .map(|(ix, _)| ix), ) - .use_max_width() - .use_max_height() .into_any_element(); if self.deployed_from_indicator { diff --git a/crates/gpui/src/elements/uniform_list.rs b/crates/gpui/src/elements/uniform_list.rs index deca91fd1d..ce32b993a5 100644 --- a/crates/gpui/src/elements/uniform_list.rs +++ b/crates/gpui/src/elements/uniform_list.rs @@ -56,8 +56,6 @@ where ..Default::default() }, scroll_handle: None, - use_max_width: false, - use_max_height: false, } } @@ -66,8 +64,6 @@ pub struct UniformList { id: ElementId, item_count: usize, item_to_measure_index: usize, - use_max_width: bool, - use_max_height: bool, render_items: Box Fn(Range, &'a mut WindowContext) -> SmallVec<[AnyElement; 64]>>, interactivity: Interactivity, @@ -284,40 +280,19 @@ impl UniformList { self } - /// Forces the list to use the `AvailableSpace::MaxContent` for its items width during laying out. - pub fn use_max_width(mut self) -> Self { - self.use_max_width = true; - self - } - - /// Forces the list to use the `AvailableSpace::MaxContent` for its items' height during laying out. - pub fn use_max_height(mut self) -> Self { - self.use_max_height = true; - self - } - fn measure_item(&self, list_width: Option, cx: &mut ElementContext) -> Size { if self.item_count == 0 { return Size::default(); } - let width_default = if self.use_max_width { - AvailableSpace::MaxContent - } else { - AvailableSpace::MinContent - }; - let height_default = if self.use_max_height { - AvailableSpace::MaxContent - } else { - AvailableSpace::MinContent - }; - let item_ix = cmp::min(self.item_to_measure_index, self.item_count - 1); let mut items = (self.render_items)(item_ix..item_ix + 1, cx); let mut item_to_measure = items.pop().unwrap(); let available_space = size( - list_width.map_or(width_default, AvailableSpace::Definite), - height_default, + list_width.map_or(AvailableSpace::MinContent, |width| { + AvailableSpace::Definite(width) + }), + AvailableSpace::MinContent, ); item_to_measure.measure(available_space, cx) } diff --git a/crates/ui/src/components/list/list_item.rs b/crates/ui/src/components/list/list_item.rs index b4586f8999..f23de39253 100644 --- a/crates/ui/src/components/list/list_item.rs +++ b/crates/ui/src/components/list/list_item.rs @@ -149,7 +149,6 @@ impl ParentElement for ListItem { impl RenderOnce for ListItem { fn render(self, cx: &mut WindowContext) -> impl IntoElement { h_flex() - .flex_grow() .id(self.id) .w_full() .relative()