summaryrefslogtreecommitdiff
path: root/engine/src/windowing
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-08-10 21:18:18 +0200
committerHampusM <hampus@hampusmat.com>2026-08-10 21:18:18 +0200
commitb732fa6378964ab9ca23fd71d7a82f39f6ae0009 (patch)
tree38e0fd63b633bdde679356cd1e7a2dae9b75eaf4 /engine/src/windowing
parent9a303edb56fb460f2b60aef0bfca15a242381ba0 (diff)
fix(engine): prevent ignored mouse button input when main loop is slow
Diffstat (limited to 'engine/src/windowing')
-rw-r--r--engine/src/windowing/mouse.rs15
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;
}
}