From 11bbcb684adb0e810923efb4dbebe7458b0ac096 Mon Sep 17 00:00:00 2001 From: Federico Lolli <federico.lolli@skywarder.eu> Date: Tue, 25 Mar 2025 19:05:28 +0100 Subject: [PATCH] Fixed PID issue with deleting the only element present on pane --- src/ui/panes/pid_drawing_tool.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs index beaa185..f4e980e 100644 --- a/src/ui/panes/pid_drawing_tool.rs +++ b/src/ui/panes/pid_drawing_tool.rs @@ -5,7 +5,9 @@ mod symbols; use connections::Connection; use core::f32; -use egui::{Color32, Context, CursorIcon, PointerButton, Response, Sense, Theme, Ui}; +use egui::{ + Button, Color32, Context, CursorIcon, PointerButton, Response, Sense, Theme, Ui, Widget, +}; use egui_tiles::TileId; use elements::Element; use glam::Vec2; @@ -263,12 +265,14 @@ impl PidPane { self.action = Some(Action::Connect(elem_idx)); ui.close_menu(); } - if ui.button("Delete").clicked() { + let btn_response = Button::new("Delete").ui(ui); + self.elements[elem_idx].context_menu(ui); + // Handle the delete button + if btn_response.clicked() { self.delete_element(elem_idx); self.action.take(); ui.close_menu(); } - self.elements[elem_idx].context_menu(ui); } else if let Some((conn_idx, segm_idx)) = self.hovers_connection(pointer_pos) { if ui.button("Split").clicked() { self.connections[conn_idx].split(segm_idx, self.grid.screen_to_grid(pointer_pos)); -- GitLab