Kernel: Combine consecutive mouse move and scroll events

This makes mouse work much smoother when running without kvm.
This commit is contained in:
Bananymous 2024-06-11 00:07:31 +03:00
parent caa0111c79
commit d4903caafa
1 changed files with 16 additions and 0 deletions

View File

@ -165,6 +165,22 @@ namespace Kernel::Input
for (int i = 0; i < event_count; i++)
{
if (!m_event_queue.empty() && m_event_queue.back().type == events[i].type)
{
if (events[i].type == MouseEventType::MouseMoveEvent)
{
m_event_queue.back().move_event.rel_x += events[i].move_event.rel_x;
m_event_queue.back().move_event.rel_y += events[i].move_event.rel_y;
continue;
}
if (events[i].type == MouseEventType::MouseScrollEvent)
{
m_event_queue.back().scroll_event.scroll += events[i].scroll_event.scroll;
continue;
}
}
if (m_event_queue.full())
{
dwarnln("PS/2 event queue full");