(&mut self)
| 123 | } |
| 124 | |
| 125 | pub(crate) fn pointer_move(&mut self) -> Option<MoveEvent> { |
| 126 | if !(self.dragging)() { |
| 127 | return None; |
| 128 | } |
| 129 | |
| 130 | let active_pointer_id = (self.active_pointer_id)()?; |
| 131 | let Some(pointer_position) = pointer::pointer_position(active_pointer_id) else { |
| 132 | self.end_pointer(); |
| 133 | return None; |
| 134 | }; |
| 135 | |
| 136 | let delta = if let Some(last_position) = |
| 137 | self.last_pointer_position.replace(Some(pointer_position)) |
| 138 | { |
| 139 | pointer_position - last_position |
| 140 | } else { |
| 141 | Vector2D::zero() |
| 142 | }; |
| 143 | |
| 144 | Some(MoveEvent { |
| 145 | delta_x: delta.x, |
| 146 | delta_y: delta.y, |
| 147 | modifiers: MoveModifiers::default(), |
| 148 | }) |
| 149 | } |
| 150 | |
| 151 | pub(crate) fn end_pointer(&mut self) { |
| 152 | self.active_pointer_id.take(); |
no test coverage detected