note media: only show full screen when loaded

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2025-04-29 12:34:03 -04:00
parent 379d6c0307
commit 01636786be

View File

@@ -98,6 +98,16 @@ pub(crate) fn image_carousel(
.fixed_pos(ui.ctx().screen_rect().min) .fixed_pos(ui.ctx().screen_rect().min)
.frame(egui::Frame::NONE) .frame(egui::Frame::NONE)
.show(ui.ctx(), |ui| { .show(ui.ctx(), |ui| {
ui.centered_and_justified(|ui| {
render_images(
ui,
img_cache,
&image,
ImageType::Content,
cache_type,
|_| {},
|_, _| {},
|ui, url, renderable_media, gifs| {
let screen_rect = ui.ctx().screen_rect(); let screen_rect = ui.ctx().screen_rect();
// escape // escape
@@ -108,8 +118,11 @@ pub(crate) fn image_carousel(
} }
// background // background
ui.painter() ui.painter().rect_filled(
.rect_filled(screen_rect, 0.0, Color32::from_black_alpha(230)); screen_rect,
0.0,
Color32::from_black_alpha(230),
);
// zoom init // zoom init
let zoom_id = carousel_id.with("zoom_level"); let zoom_id = carousel_id.with("zoom_level");
@@ -119,15 +132,16 @@ pub(crate) fn image_carousel(
// pan init // pan init
let pan_id = carousel_id.with("pan_offset"); let pan_id = carousel_id.with("pan_offset");
let mut pan_offset = ui let mut pan_offset = ui.ctx().memory(|mem| {
.ctx() mem.data.get_temp(pan_id).unwrap_or(egui::Vec2::ZERO)
.memory(|mem| mem.data.get_temp(pan_id).unwrap_or(egui::Vec2::ZERO)); });
// zoom & scroll // zoom & scroll
if ui.input(|i| i.pointer.hover_pos()).is_some() { if ui.input(|i| i.pointer.hover_pos()).is_some() {
let scroll_delta = ui.input(|i| i.smooth_scroll_delta); let scroll_delta = ui.input(|i| i.smooth_scroll_delta);
if scroll_delta.y != 0.0 { if scroll_delta.y != 0.0 {
let zoom_factor = if scroll_delta.y > 0.0 { 1.05 } else { 0.95 }; let zoom_factor =
if scroll_delta.y > 0.0 { 1.05 } else { 0.95 };
zoom *= zoom_factor; zoom *= zoom_factor;
zoom = zoom.clamp(0.1, 5.0); zoom = zoom.clamp(0.1, 5.0);
@@ -142,20 +156,6 @@ pub(crate) fn image_carousel(
} }
} }
ui.centered_and_justified(|ui| {
render_images(
ui,
img_cache,
&image,
ImageType::Content,
cache_type,
|ui| {
ui.allocate_space(egui::vec2(spinsz, spinsz));
},
|ui, _| {
ui.allocate_space(egui::vec2(spinsz, spinsz));
},
|ui, url, renderable_media, gifs| {
let texture = handle_repaint( let texture = handle_repaint(
ui, ui,
retrieve_latest_texture(&image, gifs, renderable_media), retrieve_latest_texture(&image, gifs, renderable_media),