diff --git a/hcie-iced-app/crates/hcie-iced-gui/src/app.rs b/hcie-iced-app/crates/hcie-iced-gui/src/app.rs index 829bdd8..9fb6ab3 100644 --- a/hcie-iced-app/crates/hcie-iced-gui/src/app.rs +++ b/hcie-iced-app/crates/hcie-iced-gui/src/app.rs @@ -1995,6 +1995,8 @@ impl HcieIcedApp { Message::Deselect => { self.documents[self.active_doc].selection_rect = None; self.documents[self.active_doc].selection_bounds = None; + self.documents[self.active_doc].selection_transform = None; + self.documents[self.active_doc].transform_drag_handle = TransformHandle::None; self.documents[self.active_doc].engine.selection_clear(); } Message::SelectInverse => { @@ -2535,6 +2537,16 @@ impl HcieIcedApp { && self.documents[self.active_doc].crop_state.active { self.documents[self.active_doc].crop_state.cancel(); + } else if self.documents[self.active_doc].selection_transform.is_some() { + // Cancel transform if active + let doc = &mut self.documents[self.active_doc]; + if let Some(original) = doc.transform_original.take() { + doc.selection_transform = Some(original); + } else { + doc.selection_transform = None; + } + doc.transform_drag_start = None; + doc.transform_drag_handle = TransformHandle::None; } else if self.active_menu.is_some() { self.active_menu = None; } else if self.active_dialog != ActiveDialog::None {