mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 13:38:11 +00:00

This patch introduces code generation for the WindowServer IPC with its clients. The client/server endpoints are defined by the two .ipc files in Servers/WindowServer/: WindowServer.ipc and WindowClient.ipc It now becomes significantly easier to add features and capabilities to WindowServer since you don't have to know nearly as much about all the intricate paths that IPC messages take between LibGUI and WSWindow. The new system also uses significantly less IPC bandwidth since we're now doing packed serialization instead of passing fixed-sized structs of ~600 bytes for each message. Some repaint coalescing optimizations are lost in this conversion and we'll need to look at how to implement those in the new world. The old CoreIPC::Client::Connection and CoreIPC::Server::Connection classes are removed by this patch and replaced by use of ConnectionNG, which will be renamed eventually. Goodbye, old WindowServer IPC. You served us well :^)
30 lines
1.6 KiB
Text
30 lines
1.6 KiB
Text
endpoint WindowClient = 4
|
|
{
|
|
Paint(i32 window_id, Size window_size, Vector<Rect> rects) =|
|
|
MouseMove(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseDown(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseDoubleClick(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseUp(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
MouseWheel(i32 window_id, Point mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
|
|
WindowEntered(i32 window_id) =|
|
|
WindowLeft(i32 window_id) =|
|
|
KeyDown(i32 window_id, u8 character, u32 key, u32 modifiers) =|
|
|
KeyUp(i32 window_id, u8 character, u32 key, u32 modifiers) =|
|
|
WindowActivated(i32 window_id) =|
|
|
WindowDeactivated(i32 window_id) =|
|
|
WindowCloseRequest(i32 window_id) =|
|
|
WindowResized(i32 window_id, Rect old_rect, Rect new_rect) =|
|
|
|
|
MenuItemActivated(i32 menu_id, i32 identifier) =|
|
|
|
|
ScreenRectChanged(Rect rect) =|
|
|
|
|
ClipboardContentsChanged(String content_type) =|
|
|
|
|
WM_WindowRemoved(i32 client_id, i32 window_id) =|
|
|
WM_WindowStateChanged(i32 client_id, i32 window_id, bool is_active, bool is_minimized, i32 window_type, String title, Rect rect) =|
|
|
WM_WindowIconBitmapChanged(i32 client_id, i32 window_id, i32 icon_buffer_id, Size icon_size) =|
|
|
WM_WindowRectChanged(i32 client_id, i32 window_id, Rect rect) =|
|
|
|
|
AsyncSetWallpaperFinished(bool success) =|
|
|
}
|