diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs
index beaa1859071f6039a9819ccea6f813e7817c43fe..f4e980e4182d1418efbe1ca2fbf104a10ed3f4d7 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));