From 8501ae6a191bdbc4e5ad7966632933b95feb5dc4 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Wed, 24 Jul 2024 18:43:01 -0400 Subject: [PATCH] Make context and dropdown menus scrollable (#15127) This PR makes context and dropdown menus scrollable, so that they don't become totally unusable when they overflow the window. Release Notes: - N/A --- crates/ui/src/components/context_menu.rs | 3 +++ crates/ui/src/components/dropdown_menu.rs | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/ui/src/components/context_menu.rs b/crates/ui/src/components/context_menu.rs index 0ba5a79766..8d0fc06114 100644 --- a/crates/ui/src/components/context_menu.rs +++ b/crates/ui/src/components/context_menu.rs @@ -311,7 +311,10 @@ impl Render for ContextMenu { div().occlude().elevation_2(cx).flex().flex_row().child( WithRemSize::new(ui_font_size).flex().child( v_flex() + .id("context-menu") .min_w(px(200.)) + .max_h(vh(0.75, cx)) + .overflow_y_scroll() .track_focus(&self.focus_handle) .on_mouse_down_out(cx.listener(|this, _, cx| this.cancel(&menu::Cancel, cx))) .key_context("menu") diff --git a/crates/ui/src/components/dropdown_menu.rs b/crates/ui/src/components/dropdown_menu.rs index 37a0bcff2c..ab2f6a372e 100644 --- a/crates/ui/src/components/dropdown_menu.rs +++ b/crates/ui/src/components/dropdown_menu.rs @@ -1,4 +1,4 @@ -use gpui::{ClickEvent, CursorStyle, MouseButton, View}; +use gpui::{AnchorCorner, ClickEvent, CursorStyle, MouseButton, View}; use crate::{prelude::*, ContextMenu, PopoverMenu}; @@ -45,6 +45,7 @@ impl RenderOnce for DropdownMenu { .full_width(self.full_width) .menu(move |_cx| Some(self.menu.clone())) .trigger(DropdownMenuTrigger::new(self.label).full_width(self.full_width)) + .attach(AnchorCorner::BottomLeft) } }