From 759a1d196a2d4cf661d54fcf52fbd0087663d617 Mon Sep 17 00:00:00 2001
From: Alberto Nidasio <alberto.nidasio@skywarder.eu>
Date: Mon, 13 Jan 2025 11:21:38 +0100
Subject: [PATCH] Made PID editor grid position absolute

---
 src/ui/panes/pid_drawing_tool.rs | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs
index 1dcf51d..95b9b93 100644
--- a/src/ui/panes/pid_drawing_tool.rs
+++ b/src/ui/panes/pid_drawing_tool.rs
@@ -220,12 +220,13 @@ impl PidPane {
         let window_rect = ui.max_rect();
         let dot_color = PidPane::dots_color(theme);
 
-        for x in (window_rect.min.x as i32..window_rect.max.x.round() as i32)
-            .step_by(self.grid.size as usize)
-        {
-            for y in (window_rect.min.y as i32..window_rect.max.y.round() as i32)
-                .step_by(self.grid.size as usize)
-            {
+        let start_x = (window_rect.min.x / self.grid.size) as i32 * self.grid.size as i32;
+        let end_x = (window_rect.max.x / self.grid.size + 1.0) as i32 * self.grid.size as i32;
+        let start_y = (window_rect.min.y / self.grid.size) as i32 * self.grid.size as i32;
+        let end_y = (window_rect.max.y / self.grid.size + 1.0) as i32 * self.grid.size as i32;
+
+        for x in (start_x..end_x).step_by(self.grid.size as usize) {
+            for y in (start_y..end_y).step_by(self.grid.size as usize) {
                 let rect = egui::Rect::from_min_size(
                     egui::Pos2::new(x as f32, y as f32),
                     egui::Vec2::new(1.0, 1.0),
-- 
GitLab