1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:17:44 +00:00

WindowServer+LibGUI: Make client/server greeting faster

Instead of doing a full IPC round-trip for the client and server to
greet each other upon connecting, the server now automatically sends
a "fast_greet" message when a client connects.

The client simply waits for that message to arrive before proceeding.
(Waiting is necessary since LibGUI relies on the palette information
included in the greeting.)
This commit is contained in:
Andreas Kling 2021-05-20 21:42:31 +02:00
parent 1150e9fe79
commit ec8363aec3
6 changed files with 15 additions and 11 deletions

View file

@ -53,6 +53,8 @@ ClientConnection::ClientConnection(NonnullRefPtr<Core::LocalSocket> client_socke
if (!s_connections)
s_connections = new HashMap<int, NonnullRefPtr<ClientConnection>>;
s_connections->set(client_id, *this);
async_fast_greet(Screen::the().rect(), Gfx::current_system_theme_buffer());
}
ClientConnection::~ClientConnection()
@ -681,11 +683,6 @@ void ClientConnection::start_window_resize(i32 window_id)
WindowManager::the().start_window_resize(window, Screen::the().cursor_location(), MouseButton::Left);
}
Messages::WindowServer::GreetResponse ClientConnection::greet()
{
return { Screen::the().rect(), Gfx::current_system_theme_buffer() };
}
Messages::WindowServer::StartDragResponse ClientConnection::start_drag(String const& text, HashMap<String, ByteBuffer> const& mime_data, Gfx::ShareableBitmap const& drag_bitmap)
{
auto& wm = WindowManager::the();