From e9dad7ef0c369b608f9e634967083f45811b38a7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 23 Jul 2026 19:44:13 +0300 Subject: [PATCH] refactor: clamp canvas pointer movement, prioritize local pan offset, and remove debug logs --- hcie-iced-app/crates/hcie-iced-gui/src/app.rs | 1 - .../hcie-iced-gui/src/canvas/shader_canvas.rs | 15 +++++++-------- .../crates/hcie-iced-gui/src/sidebar/mod.rs | 5 ----- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/hcie-iced-app/crates/hcie-iced-gui/src/app.rs b/hcie-iced-app/crates/hcie-iced-gui/src/app.rs index 2f8f479..46c3b83 100644 --- a/hcie-iced-app/crates/hcie-iced-gui/src/app.rs +++ b/hcie-iced-app/crates/hcie-iced-gui/src/app.rs @@ -9495,7 +9495,6 @@ impl HcieIcedApp { ); // Toolbox — 36px strip (single column) or 72px (2 columns) on the left edge - log::info!("[view] sidebar_expanded={}", self.sidebar_expanded); let toolbox = crate::sidebar::view( &self.tool_state, &self.fg_color, diff --git a/hcie-iced-app/crates/hcie-iced-gui/src/canvas/shader_canvas.rs b/hcie-iced-app/crates/hcie-iced-gui/src/canvas/shader_canvas.rs index 2509871..8871544 100644 --- a/hcie-iced-app/crates/hcie-iced-gui/src/canvas/shader_canvas.rs +++ b/hcie-iced-app/crates/hcie-iced-gui/src/canvas/shader_canvas.rs @@ -1016,13 +1016,12 @@ impl shader::Program for CanvasShaderProgram { // Left mouse drag (drawing) if state.left_pressed { - if let (Some(cx), Some(cy)) = (canvas_x, canvas_y) { - return ( - iced::event::Status::Captured, - Some(Message::CanvasPointerMoved { x: cx, y: cy }), - ); - } - return (iced::event::Status::Captured, Some(pane_size_msg)); + let cx = canvas_x.unwrap_or(0.0).clamp(0.0, self.engine_w as f32); + let cy = canvas_y.unwrap_or(0.0).clamp(0.0, self.engine_h as f32); + return ( + iced::event::Status::Captured, + Some(Message::CanvasPointerMoved { x: cx, y: cy }), + ); } // Middle mouse drag (panning) @@ -1261,7 +1260,7 @@ impl shader::Program for CanvasShaderProgram { canvas_w: self.engine_w, canvas_h: self.engine_h, zoom: self.zoom, - pan_offset: self.pan_offset, + pan_offset: state.local_pan_offset.unwrap_or(self.pan_offset), texture_update: self.texture_update.clone(), composite_pixels: self.composite_pixels.clone(), full_upload: self.full_upload, diff --git a/hcie-iced-app/crates/hcie-iced-gui/src/sidebar/mod.rs b/hcie-iced-app/crates/hcie-iced-gui/src/sidebar/mod.rs index 5689334..9c69e11 100644 --- a/hcie-iced-app/crates/hcie-iced-gui/src/sidebar/mod.rs +++ b/hcie-iced-app/crates/hcie-iced-gui/src/sidebar/mod.rs @@ -168,11 +168,6 @@ pub fn view<'a>( expanded: bool, ) -> Element<'a, Message> { let sidebar_width = if expanded { 72 } else { 36 }; - log::info!( - "[sidebar] expanded={} open_subtool_slot={:?}", - expanded, - open_subtool_slot - ); // Tool buttons — single column or 2-column grid depending on expanded state let mut tool_list = column![].spacing(1);