@@ -656,44 +656,21 @@ impl<T: Item + 'static> FilePicker<T> {
658 fn render_preview(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
658 fn render_preview(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
659− // +---------+ +---------+
660− // |prompt | |preview |
664− // +---------+ +---------+
666− let render_preview = self.picker.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
667 // -- Render the frame:
659 // -- Render the frame:
668 // clear area
660 // clear area
669 let background = cx.editor.theme.get("ui.background");
661 let background = cx.editor.theme.get("ui.background");
670 let text = cx.editor.theme.get("ui.text");
662 let text = cx.editor.theme.get("ui.text");
671 surface.clear_with(area, background);
663 surface.clear_with(area, background);
673− let picker_width = if render_preview {
679− let picker_area = area.with_width(picker_width);
680− self.picker.render(picker_area, surface, cx);
682− if !render_preview {
686− let preview_area = area.clip_left(picker_width);
688 // don't like this but the lifetime sucks
665 // don't like this but the lifetime sucks
689 let block = Block::default().borders(Borders::ALL);
666 let block = Block::default().borders(Borders::ALL);
691 // calculate the inner area inside the box
668 // calculate the inner area inside the box
692− let inner = block.inner(preview_area);
669+ let inner = block.inner(area);
693 // 1 column gap on either side
670 // 1 column gap on either side
694 let margin = Margin::horizontal(1);
671 let margin = Margin::horizontal(1);
695 let inner = inner.inner(&margin);
672 let inner = inner.inner(&margin);
696− block.render(preview_area, surface);
673+ block.render(area, surface);
698 if let Some((path, range)) = self.current_file(cx.editor) {
675 if let Some((path, range)) = self.current_file(cx.editor) {
699 let preview = self.get_preview(path, cx.editor);
676 let preview = self.get_preview(path, cx.editor);
@@ -873,7 +850,28 @@ impl<T: Item + 'static> FilePicker<T> {
874impl<T: Item + 'static> Component for FilePicker<T> {
851impl<T: Item + 'static> Component for FilePicker<T> {
875 fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
852 fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
853+ // +---------+ +---------+
854+ // |prompt | |preview |
858+ // +---------+ +---------+
860+ let render_preview = self.picker.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
862+ let picker_width = if render_preview {
868+ let picker_area = area.with_width(picker_width);
876− self.render_picker(area, surface, cx);
869+ self.render_picker(picker_area, surface, cx);
872+ let preview_area = area.clip_left(picker_width);
873+ self.render_preview(preview_area, surface, cx);