fix(iced): clear selection handle on deselect and Escape
- Deselect handler now clears selection_transform and transform_drag_handle - Escape key (MenuClose) now cancels active transform before closing menus - Ensures selection handles are properly cleaned up when deselecting
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user