diff options
Diffstat (limited to 'src/tool/deletion_tool.rs')
| -rw-r--r-- | src/tool/deletion_tool.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/tool/deletion_tool.rs b/src/tool/deletion_tool.rs index bd80809..c313574 100644 --- a/src/tool/deletion_tool.rs +++ b/src/tool/deletion_tool.rs @@ -40,18 +40,29 @@ impl Tool for DeletionTool { self.deletion_rect = None; } - fn active_update(&mut self, map_data: &mut MapData, rl: &RaylibHandle, transform: &Transform) { + fn active_update( + &mut self, + map_data: &mut MapData, + rl: &RaylibHandle, + transform: &Transform, + mouse_blocked: bool, + ) { let mouse_pos_m = transform.point_px_to_m(rl.get_mouse_position().into()); if let Some((_, ref mut pos2)) = &mut self.deletion_rect { *pos2 = mouse_pos_m; } - if self.keybindings.do_delete.is_pressed(rl) && self.deletion_rect.is_some() { + if self.keybindings.do_delete.is_pressed(rl, mouse_blocked) && self.deletion_rect.is_some() + { let (pos1, pos2) = self.deletion_rect.take().unwrap(); Self::delete_rect(map_data, Rect::bounding_rect(pos1, pos2)); - } else if self.keybindings.start_selection.is_pressed(rl) { + } else if self + .keybindings + .start_selection + .is_pressed(rl, mouse_blocked) + { self.deletion_rect = Some((mouse_pos_m, mouse_pos_m)) - } else if self.keybindings.abort_deletion.is_pressed(rl) { + } else if self.keybindings.abort_deletion.is_pressed(rl, false) { self.deletion_rect = None; } } |
