1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:18:12 +00:00
serenity/Userland/Services/WindowServer/WindowManagerServer.ipc
sin-ack aa56f9a1e0 LibGUI+WindowServer: Separate window manager IPC from regular IPC
With this patch the window manager related functionality is split out
onto a new endpoint pair named WindowManagerServer/Client.  This allows
window manager functionality to be potentially privilege separated in
the future.  To this end, a new client named WMConnectionClient
is used to maintain a window manager connection.  When a process
connects to the endpoint and greets the WindowServer as a window manager
(via Window::make_window_manager(int)), they're subscribed to the events
they requested via the WM event mask.

This patch also removes the hardcoding of the Taskbar WindowType to
receive WM events automatically.  However, being a window manager still
requires having an active window, at the moment.
2021-04-17 13:06:25 +02:00

12 lines
519 B
Text

endpoint WindowManagerServer = 1871
{
SetEventMask(u32 event_mask) => ()
SetManagerWindow(i32 window_id) => ()
SetActiveWindow(i32 client_id, i32 window_id) =|
SetWindowMinimized(i32 client_id, i32 window_id, bool minimized) =|
StartWindowResize(i32 client_id, i32 window_id) =|
PopupWindowMenu(i32 client_id, i32 window_id, Gfx::IntPoint screen_position) =|
SetWindowTaskbarRect(i32 client_id, i32 window_id, Gfx::IntRect rect) =|
SetAppletAreaPosition(Gfx::IntPoint position) => ()
}