1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 19:15:07 +00:00

LibGUI+WindowServer: Implement drag-to-select behavior in GTextEditor.

To make this feel right, I needed to start passing keyboard modifiers along
with mouse events. That allows shift-clicking to extend the selection. :^)
This commit is contained in:
Andreas Kling 2019-03-08 17:53:02 +01:00
parent 6d172725c0
commit f40d11f06d
11 changed files with 73 additions and 21 deletions

View file

@ -82,18 +82,21 @@ void WSWindow::on_message(WSMessage& message)
server_message.mouse.position = static_cast<WSMouseEvent&>(message).position();
server_message.mouse.button = WSAPI_MouseButton::NoButton;
server_message.mouse.buttons = static_cast<WSMouseEvent&>(message).buttons();
server_message.mouse.modifiers = static_cast<WSMouseEvent&>(message).modifiers();
break;
case WSMessage::MouseDown:
server_message.type = WSAPI_ServerMessage::Type::MouseDown;
server_message.mouse.position = static_cast<WSMouseEvent&>(message).position();
server_message.mouse.button = to_api(static_cast<WSMouseEvent&>(message).button());
server_message.mouse.buttons = static_cast<WSMouseEvent&>(message).buttons();
server_message.mouse.modifiers = static_cast<WSMouseEvent&>(message).modifiers();
break;
case WSMessage::MouseUp:
server_message.type = WSAPI_ServerMessage::Type::MouseUp;
server_message.mouse.position = static_cast<WSMouseEvent&>(message).position();
server_message.mouse.button = to_api(static_cast<WSMouseEvent&>(message).button());
server_message.mouse.buttons = static_cast<WSMouseEvent&>(message).buttons();
server_message.mouse.modifiers = static_cast<WSMouseEvent&>(message).modifiers();
break;
case WSMessage::WindowEntered:
server_message.type = WSAPI_ServerMessage::Type::WindowEntered;