summaryrefslogtreecommitdiff
path: root/engine/src/ui/imgui.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/ui/imgui.rs')
-rw-r--r--engine/src/ui/imgui.rs28
1 files changed, 15 insertions, 13 deletions
diff --git a/engine/src/ui/imgui.rs b/engine/src/ui/imgui.rs
index 7dea7fb..75ce9c0 100644
--- a/engine/src/ui/imgui.rs
+++ b/engine/src/ui/imgui.rs
@@ -503,12 +503,11 @@ fn update_inputs(
mouse_buttons: &MouseButtons,
)
{
+ let io = context.ctx.get_io_mut();
+
for (key, key_state) in keyboard.new_key_states() {
if let Some(key) = key_to_imgui_key(key) {
- context
- .ctx
- .get_io_mut()
- .add_key_event(key, key_state.is_pressed());
+ io.add_key_event(key, key_state.is_pressed());
}
}
@@ -517,22 +516,25 @@ fn update_inputs(
continue;
}
- context.ctx.get_io_mut().add_input_character(character);
+ io.add_input_character(character);
}
+ io.add_mouse_source_event(dear_imgui_rs::input::MouseSource::Mouse);
+
let mouse_pos = mouse.position.to_logical::<f64>(window.scale_factor());
- context
- .ctx
- .get_io_mut()
- .add_mouse_pos_event([mouse_pos.x as f32, mouse_pos.y as f32]);
+ io.add_mouse_pos_event([mouse_pos.x as f32, mouse_pos.y as f32]);
+
+ if !mouse.curr_tick_scroll_delta.is_zero() {
+ io.add_mouse_wheel_event([
+ mouse.curr_tick_scroll_delta.hor_lines,
+ mouse.curr_tick_scroll_delta.vert_lines,
+ ]);
+ }
for (mouse_button, mouse_button_state) in mouse_buttons.all_current() {
if let Some(mouse_button) = mouse_button_to_imgui_mouse_button(mouse_button) {
- context
- .ctx
- .get_io_mut()
- .add_mouse_button_event(mouse_button, mouse_button_state.is_pressed());
+ io.add_mouse_button_event(mouse_button, mouse_button_state.is_pressed());
}
}
}