refactor: clamp canvas pointer movement, prioritize local pan offset, and remove debug logs
This commit is contained in:
@@ -9495,7 +9495,6 @@ impl HcieIcedApp {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Toolbox — 36px strip (single column) or 72px (2 columns) on the left edge
|
// 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(
|
let toolbox = crate::sidebar::view(
|
||||||
&self.tool_state,
|
&self.tool_state,
|
||||||
&self.fg_color,
|
&self.fg_color,
|
||||||
|
|||||||
@@ -1016,14 +1016,13 @@ impl shader::Program<Message> for CanvasShaderProgram {
|
|||||||
|
|
||||||
// Left mouse drag (drawing)
|
// Left mouse drag (drawing)
|
||||||
if state.left_pressed {
|
if state.left_pressed {
|
||||||
if let (Some(cx), Some(cy)) = (canvas_x, canvas_y) {
|
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 (
|
return (
|
||||||
iced::event::Status::Captured,
|
iced::event::Status::Captured,
|
||||||
Some(Message::CanvasPointerMoved { x: cx, y: cy }),
|
Some(Message::CanvasPointerMoved { x: cx, y: cy }),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (iced::event::Status::Captured, Some(pane_size_msg));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Middle mouse drag (panning)
|
// Middle mouse drag (panning)
|
||||||
if state.middle_pressed && state.pan_start.is_some() {
|
if state.middle_pressed && state.pan_start.is_some() {
|
||||||
@@ -1261,7 +1260,7 @@ impl shader::Program<Message> for CanvasShaderProgram {
|
|||||||
canvas_w: self.engine_w,
|
canvas_w: self.engine_w,
|
||||||
canvas_h: self.engine_h,
|
canvas_h: self.engine_h,
|
||||||
zoom: self.zoom,
|
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(),
|
texture_update: self.texture_update.clone(),
|
||||||
composite_pixels: self.composite_pixels.clone(),
|
composite_pixels: self.composite_pixels.clone(),
|
||||||
full_upload: self.full_upload,
|
full_upload: self.full_upload,
|
||||||
|
|||||||
@@ -168,11 +168,6 @@ pub fn view<'a>(
|
|||||||
expanded: bool,
|
expanded: bool,
|
||||||
) -> Element<'a, Message> {
|
) -> Element<'a, Message> {
|
||||||
let sidebar_width = if expanded { 72 } else { 36 };
|
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
|
// Tool buttons — single column or 2-column grid depending on expanded state
|
||||||
let mut tool_list = column![].spacing(1);
|
let mut tool_list = column![].spacing(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user