From 8ffd287c335e8494ab85133436a3f30feb92e100 Mon Sep 17 00:00:00 2001 From: ramox81 <184937705+ramox81@users.noreply.github.com> Date: Fri, 11 Sep 2026 14:09:51 +0300 Subject: [PATCH] Avoid undo entries for unchanged break results --- src/app/command_driver.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/app/command_driver.rs b/src/app/command_driver.rs index 190e10888..11b920f1d 100644 --- a/src/app/command_driver.rs +++ b/src/app/command_driver.rs @@ -3319,6 +3319,20 @@ impl OpenCADStudio { .and_then(|e| break_entity(e, p1, p2)); match replacement { Some(frags) => { + let unchanged = frags.len() == 1 && self.tabs[i].scene.document.get_entity(handle) + .is_some_and(|original| { + let mut fragment = frags[0].clone(); + fragment.common_mut().handle = handle; + &fragment == original + }); + if unchanged { + self.tabs[i].active_cmd = None; + self.tabs[i].snap_result = None; + self.tabs[i].scene.clear_preview_wire(); + self.restore_pre_cmd_tangent(); + self.command_line.push_output("BREAK: no geometry changed."); + return Task::none(); + } let label = self.history_label_from_active_cmd(i, "BREAK"); self.push_undo_snapshot(i, label); let count = frags.len();