@@ -750,6 +750,33 @@ impl<T: Item + 'static> Picker<T> {
750750 );
751751 }
752752 }
753+}
754+
755+impl<T: Item + 'static> Component for Picker<T> {
756+ fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
757+ // +---------+ +---------+
758+ // |prompt | |preview |
759+ // +---------+ | |
760+ // |picker | | |
761+ // | | | |
762+ // +---------+ +---------+
763+
764+ let render_preview = self.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
765+
766+ let picker_width = if render_preview {
767+ area.width / 2
768+ } else {
769+ area.width
770+ };
771+
772+ let picker_area = area.with_width(picker_width);
773+ self.render_picker(picker_area, surface, cx);
774+
775+ if render_preview {
776+ let preview_area = area.clip_left(picker_width);
777+ self.render_preview(preview_area, surface, cx);
778+ }
779+ }
753780
754781 fn handle_event(&mut self, event: &Event, ctx: &mut Context) -> EventResult {
755782 if let Event::IdleTimeout = event {
@@ -846,33 +873,6 @@ impl<T: Item + 'static> Picker<T> {
846873 }
847874}
848875
849−impl<T: Item + 'static> Component for Picker<T> {
850− fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
851− // +---------+ +---------+
852− // |prompt | |preview |
853− // +---------+ | |
854− // |picker | | |
855− // | | | |
856− // +---------+ +---------+
857−
858− let render_preview = self.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
859−
860− let picker_width = if render_preview {
861− area.width / 2
862− } else {
863− area.width
864− };
865−
866− let picker_area = area.with_width(picker_width);
867− self.render_picker(picker_area, surface, cx);
868−
869− if render_preview {
870− let preview_area = area.clip_left(picker_width);
871− self.render_preview(preview_area, surface, cx);
872− }
873− }
874−}
875−
876876#[derive(PartialEq, Eq, Debug)]
877877struct PickerMatch {
878878 score: i64,