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
let first_line = line
.map(|(start, _)| start)
.unwrap_or(0)
.saturating_sub(inner.height as usize / 2);
.map(|(start, end)| {
let height = end.saturating_sub(start) + 1;
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 highlights = EditorView::doc_syntax_highlights(

Loading…
Cancel
Save