Use existing AnyElement::draw

Antonio Scandurra created

Change summary

crates/assistant2/src/assistant_panel.rs      |  9 +++++----
crates/gpui2/src/element.rs                   | 11 -----------
crates/terminal_view2/src/terminal_element.rs | 16 ++++++++--------
3 files changed, 13 insertions(+), 23 deletions(-)

Detailed changes

crates/assistant2/src/assistant_panel.rs 🔗

@@ -30,9 +30,9 @@ use fs::Fs;
 use futures::StreamExt;
 use gpui::{
     canvas, div, point, relative, rems, uniform_list, Action, AnyElement, AppContext,
-    AsyncWindowContext, ClipboardItem, Context, Div, EventEmitter, FocusHandle, Focusable,
-    FocusableView, FontStyle, FontWeight, HighlightStyle, InteractiveElement, IntoElement, Model,
-    ModelContext, ParentElement, Pixels, PromptLevel, Render, SharedString,
+    AsyncWindowContext, AvailableSpace, ClipboardItem, Context, Div, EventEmitter, FocusHandle,
+    Focusable, FocusableView, FontStyle, FontWeight, HighlightStyle, InteractiveElement,
+    IntoElement, Model, ModelContext, ParentElement, Pixels, PromptLevel, Render, SharedString,
     StatefulInteractiveElement, Styled, Subscription, Task, TextStyle, UniformListScrollHandle,
     View, ViewContext, VisualContext, WeakModel, WeakView, WhiteSpace, WindowContext,
 };
@@ -1199,9 +1199,10 @@ impl Render for AssistantPanel {
                                     },
                                 )
                                 .track_scroll(scroll_handle)
+                                .into_any_element()
                                 .draw(
                                     bounds.origin,
-                                    bounds.size,
+                                    bounds.size.map(AvailableSpace::Definite),
                                     cx,
                                 );
                             })

crates/gpui2/src/element.rs 🔗

@@ -23,17 +23,6 @@ pub trait IntoElement: Sized {
         self.into_element().into_any()
     }
 
-    fn draw<T>(self, origin: Point<Pixels>, available_space: Size<T>, cx: &mut WindowContext)
-    where
-        T: Clone + Default + Debug + Into<AvailableSpace>,
-    {
-        let element = DrawableElement {
-            element: Some(self.into_element()),
-            phase: ElementDrawPhase::Start,
-        };
-        DrawableElement::draw(element, origin, available_space.map(Into::into), cx);
-    }
-
     fn draw_and_update_state<T, R>(
         self,
         origin: Point<Pixels>,

crates/terminal_view2/src/terminal_element.rs 🔗

@@ -1,11 +1,11 @@
 use editor::{Cursor, HighlightedRange, HighlightedRangeLine};
 use gpui::{
-    black, div, fill, point, px, red, relative, AnyElement, AsyncWindowContext, BorrowWindow,
-    Bounds, DispatchPhase, Element, ElementId, ExternalPaths, FocusHandle, Font, FontStyle,
-    FontWeight, HighlightStyle, Hsla, InteractiveElement, InteractiveElementState, Interactivity,
-    IntoElement, LayoutId, Model, ModelContext, ModifiersChangedEvent, MouseButton, Pixels,
-    PlatformInputHandler, Point, Rgba, ShapedLine, StatefulInteractiveElement, Styled, TextRun,
-    TextStyle, TextSystem, UnderlineStyle, WhiteSpace, WindowContext,
+    black, div, fill, point, px, red, relative, AnyElement, AsyncWindowContext, AvailableSpace,
+    BorrowWindow, Bounds, DispatchPhase, Element, ElementId, ExternalPaths, FocusHandle, Font,
+    FontStyle, FontWeight, HighlightStyle, Hsla, InteractiveElement, InteractiveElementState,
+    Interactivity, IntoElement, LayoutId, Model, ModelContext, ModifiersChangedEvent, MouseButton,
+    Pixels, PlatformInputHandler, Point, Rgba, ShapedLine, StatefulInteractiveElement, Styled,
+    TextRun, TextStyle, TextSystem, UnderlineStyle, WhiteSpace, WindowContext,
 };
 use itertools::Itertools;
 use language::CursorShape;
@@ -854,8 +854,8 @@ impl Element for TerminalElement {
                 });
             }
 
-            if let Some(element) = layout.hyperlink_tooltip.take() {
-                element.draw(origin, bounds.size, cx)
+            if let Some(mut element) = layout.hyperlink_tooltip.take() {
+                element.draw(origin, bounds.size.map(AvailableSpace::Definite), cx)
             }
         });
     }