diff options
| author | HampusM <hampus@hampusmat.com> | 2026-08-10 21:18:18 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-08-10 21:18:18 +0200 |
| commit | b732fa6378964ab9ca23fd71d7a82f39f6ae0009 (patch) | |
| tree | 38e0fd63b633bdde679356cd1e7a2dae9b75eaf4 /engine/src/windowing/mouse.rs | |
| parent | 9a303edb56fb460f2b60aef0bfca15a242381ba0 (diff) | |
fix(engine): prevent ignored mouse button input when main loop is slow
Diffstat (limited to 'engine/src/windowing/mouse.rs')
| -rw-r--r-- | engine/src/windowing/mouse.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/engine/src/windowing/mouse.rs b/engine/src/windowing/mouse.rs index 93a0d93..f6087f4 100644 --- a/engine/src/windowing/mouse.rs +++ b/engine/src/windowing/mouse.rs @@ -80,11 +80,18 @@ impl Buttons button_data.current_state = button_state; } - pub(crate) fn make_states_previous(&mut self) + pub fn set_previous(&mut self, button: Button, button_state: ButtonState) { - for button_data in self.map.values_mut() { - button_data.previous_state = button_data.current_state; - } + let button_data = self.map.entry(button).or_default(); + + button_data.previous_state = button_state; + } + + pub fn set_previous_to_current(&mut self, button: Button) + { + let button_data = self.map.entry(button).or_default(); + + button_data.previous_state = button_data.current_state; } } |
