From e00d1bc13c46af9eeeef4c8de3001e308237454e Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Tue, 14 Jan 2025 13:41:52 +0100 Subject: [PATCH] Fixed grid dots drag --- src/ui/panes/pid_drawing_tool.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs index 160b421..a512ce4 100644 --- a/src/ui/panes/pid_drawing_tool.rs +++ b/src/ui/panes/pid_drawing_tool.rs @@ -231,14 +231,21 @@ impl PidPane { let window_rect = ui.max_rect(); let dot_color = PidPane::dots_color(theme); - let start_x = - (window_rect.min.x / self.grid.get_size()) as i32 * self.grid.get_size() as i32; - let end_x = - (window_rect.max.x / self.grid.get_size() + 1.0) as i32 * self.grid.get_size() as i32; - let start_y = - (window_rect.min.y / self.grid.get_size()) as i32 * self.grid.get_size() as i32; - let end_y = - (window_rect.max.y / self.grid.get_size() + 1.0) as i32 * self.grid.get_size() as i32; + let offset_x = (self.grid.zero_pos.x % self.grid.get_size()) as i32; + let offset_y = (self.grid.zero_pos.y % self.grid.get_size()) as i32; + + let start_x = (window_rect.min.x / self.grid.get_size()) as i32 + * self.grid.get_size() as i32 + + offset_x; + let end_x = (window_rect.max.x / self.grid.get_size() + 2.0) as i32 + * self.grid.get_size() as i32 + + offset_x; + let start_y = (window_rect.min.y / self.grid.get_size()) as i32 + * self.grid.get_size() as i32 + + offset_y; + let end_y = (window_rect.max.y / self.grid.get_size() + 2.0) as i32 + * self.grid.get_size() as i32 + + offset_y; for x in (start_x..end_x).step_by(self.grid.get_size() as usize) { for y in (start_y..end_y).step_by(self.grid.get_size() as usize) { -- GitLab