From 3e70c0edfe6c7be1a686577e7d57270bb5fabe5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20L?= Date: Sat, 3 Oct 2026 18:12:35 +0200 Subject: [PATCH] Loupe: zoomed Grab cursor only over the photo, so slider cursor wins in side panels Co-Authored-By: Claude Sonnet 5.5 --- crates/ui-egui/src/panels/detail.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/ui-egui/src/panels/detail.rs b/crates/ui-egui/src/panels/detail.rs index ecbb0e10..5e5d99aa 100644 --- a/crates/ui-egui/src/panels/detail.rs +++ b/crates/ui-egui/src/panels/detail.rs @@ -593,7 +593,10 @@ fn general_interaction( app.ui.zoom = Zoom::Fit; } if zoomed { - ui.ctx().set_cursor_icon(if resp.dragged() { egui::CursorIcon::Grabbing } else { egui::CursorIcon::Grab }); + // only over the photo: a panel drawn earlier (sliders) must keep its own cursor + if resp.dragged() || resp.hovered() { + ui.ctx().set_cursor_icon(if resp.dragged() { egui::CursorIcon::Grabbing } else { egui::CursorIcon::Grab }); + } if resp.dragged() { let dlt = resp.drag_delta(); app.ui.pan.0 = (app.ui.pan.0 - dlt.x / img.width()).clamp(0.0, 1.0);