ui: Don't break flex layout when using `WithRemSize` (#12076)

Marshall Bowers created

This PR fixes an issue where the flex hierarchy wasn't getting broken by
the use of `WithRemSize`.

Release Notes:

- N/A

Change summary

crates/ui/src/components/context_menu.rs | 2 +-
crates/ui/src/with_rem_size.rs           | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)

Detailed changes

crates/ui/src/components/context_menu.rs 🔗

@@ -269,7 +269,7 @@ impl Render for ContextMenu {
         let ui_font_size = ThemeSettings::get_global(cx).ui_font_size;
 
         div().occlude().elevation_2(cx).flex().flex_row().child(
-            WithRemSize::new(ui_font_size).child(
+            WithRemSize::new(ui_font_size).flex().child(
                 v_flex()
                     .min_w(px(200.))
                     .track_focus(&self.focus_handle)

crates/ui/src/with_rem_size.rs 🔗

@@ -1,6 +1,6 @@
 use gpui::{
     div, AnyElement, Bounds, Div, DivFrameState, Element, ElementId, GlobalElementId, Hitbox,
-    IntoElement, LayoutId, ParentElement, Pixels, WindowContext,
+    IntoElement, LayoutId, ParentElement, Pixels, StyleRefinement, Styled, WindowContext,
 };
 
 /// An element that sets a particular rem size for its children.
@@ -18,6 +18,12 @@ impl WithRemSize {
     }
 }
 
+impl Styled for WithRemSize {
+    fn style(&mut self) -> &mut StyleRefinement {
+        self.div.style()
+    }
+}
+
 impl ParentElement for WithRemSize {
     fn extend(&mut self, elements: impl IntoIterator<Item = AnyElement>) {
         self.div.extend(elements)