Fix image preview placeholder rendering (#483)

This commit is contained in:
vaw
2025-10-25 20:00:49 +00:00
committed by GitHub
parent 0f2442566f
commit 4b2382bf93

View File

@@ -172,7 +172,8 @@ fn placeholder_frame(
image_preview_size: &ImagePreviewSize, image_preview_size: &ImagePreviewSize,
) -> Option<String> { ) -> Option<String> {
let ImagePreviewSize { width, height } = image_preview_size; let ImagePreviewSize { width, height } = image_preview_size;
if outer_width < *width || (*width < 2 || *height < 2) { let width = usize::min(*width, outer_width);
if width < 2 || *height < 2 {
return None; return None;
} }
let mut placeholder = "\u{230c}".to_string(); let mut placeholder = "\u{230c}".to_string();
@@ -1083,7 +1084,7 @@ impl Message {
}, },
ImageStatus::Loaded(backend) => { ImageStatus::Loaded(backend) => {
proto = Some(backend); proto = Some(backend);
placeholder_frame(Some("Cut off..."), width, &backend.area().into()) placeholder_frame(Some("No Space..."), width, &backend.area().into())
}, },
ImageStatus::Error(err) => Some(format!("[Image error: {err}]\n")), ImageStatus::Error(err) => Some(format!("[Image error: {err}]\n")),
}; };
@@ -1341,7 +1342,17 @@ pub mod tests {
) )
); );
assert_eq!(placeholder_frame(None, 2, &ImagePreviewSize { width: 4, height: 4 }), None); assert_eq!(
placeholder_frame(None, 2, &ImagePreviewSize { width: 4, height: 4 }),
pretty_frame_test(
r#"
⌌⌍
⌎⌏
"#
)
);
assert_eq!(placeholder_frame(None, 4, &ImagePreviewSize { width: 1, height: 4 }), None); assert_eq!(placeholder_frame(None, 4, &ImagePreviewSize { width: 1, height: 4 }), None);
assert_eq!(placeholder_frame(None, 4, &ImagePreviewSize { width: 4, height: 1 }), None); assert_eq!(placeholder_frame(None, 4, &ImagePreviewSize { width: 4, height: 1 }), None);