1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:27:35 +00:00

WindowServer+LibGUI: Handle mouse wheel deltas in the mouse event stream.

The wheel events will end up in GWidget::mousewheel_event(GMouseEvent&)
on the client-side. This patch also implements basic wheel scrolling in
GScrollableWidget via this mechanism. :^)
This commit is contained in:
Andreas Kling 2019-05-13 19:52:57 +02:00
parent dae8eb6454
commit dab9901235
13 changed files with 58 additions and 25 deletions

View file

@ -95,6 +95,7 @@ void WSWindow::handle_mouse_event(const WSMouseEvent& event)
case WSEvent::MouseMove: server_message.type = WSAPI_ServerMessage::Type::MouseMove; break;
case WSEvent::MouseDown: server_message.type = WSAPI_ServerMessage::Type::MouseDown; break;
case WSEvent::MouseUp: server_message.type = WSAPI_ServerMessage::Type::MouseUp; break;
case WSEvent::MouseWheel: server_message.type = WSAPI_ServerMessage::Type::MouseWheel; break;
default: ASSERT_NOT_REACHED();
}
@ -102,6 +103,7 @@ void WSWindow::handle_mouse_event(const WSMouseEvent& event)
server_message.mouse.button = to_api(event.button());
server_message.mouse.buttons = event.buttons();
server_message.mouse.modifiers = event.modifiers();
server_message.mouse.wheel_delta = event.wheel_delta();
m_client->post_message(server_message);
}