ui: Be smarter about centering previews

Try centering the whole block. If the block is too big for the viewport,
then make sure that the first line is within the preview.
pull/691/head^2
Blaž Hrastnik 3 years ago
parent f871d318c0
commit 2ce87968cd

@ -124,9 +124,13 @@ impl<T: 'static> Component for FilePicker<T> {
}) { }) {
// align to middle // align to middle
let first_line = line let first_line = line
.map(|(start, _)| start) .map(|(start, end)| {
.unwrap_or(0) let height = end.saturating_sub(start) + 1;
.saturating_sub(inner.height as usize / 2); let middle = start + (height.saturating_sub(1) / 2);
middle.saturating_sub(inner.height as usize / 2).min(start)
})
.unwrap_or(0);
let offset = Position::new(first_line, 0); let offset = Position::new(first_line, 0);
let highlights = EditorView::doc_syntax_highlights( let highlights = EditorView::doc_syntax_highlights(

Loading…
Cancel
Save