1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:57:43 +00:00

LibGUI+WindowServer: Create IPC calls for passing SystemEffects

SystemEffects are sent to the WindowManager through
set_system_effects() and broadcast to Desktop clients with
update_system_effects(). WindowManager is reponsible for saving,
loading and rebroadcasting effects from WindowServer.ini on
config changes.
This commit is contained in:
thankyouverycool 2022-08-07 19:54:22 -04:00 committed by Andreas Kling
parent e2318dffe3
commit 841d06f676
8 changed files with 71 additions and 4 deletions

View file

@ -53,7 +53,7 @@ ConnectionFromClient::ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSock
s_connections->set(client_id, *this);
auto& wm = WindowManager::the();
async_fast_greet(Screen::rects(), Screen::main().index(), wm.window_stack_rows(), wm.window_stack_columns(), Gfx::current_system_theme_buffer(), Gfx::FontDatabase::default_font_query(), Gfx::FontDatabase::fixed_width_font_query(), Gfx::FontDatabase::window_title_font_query(), client_id);
async_fast_greet(Screen::rects(), Screen::main().index(), wm.window_stack_rows(), wm.window_stack_columns(), Gfx::current_system_theme_buffer(), Gfx::FontDatabase::default_font_query(), Gfx::FontDatabase::fixed_width_font_query(), Gfx::FontDatabase::window_title_font_query(), wm.system_effects().effects(), client_id);
}
ConnectionFromClient::~ConnectionFromClient()
@ -922,6 +922,14 @@ Messages::WindowServer::SetSystemFontsResponse ConnectionFromClient::set_system_
return true;
}
void ConnectionFromClient::set_system_effects(Vector<bool> const& effects, u8 geometry)
{
WindowManager::the().apply_system_effects(effects, static_cast<ShowGeometry>(geometry));
ConnectionFromClient::for_each_client([&](auto& client) {
client.async_update_system_effects(effects);
});
}
void ConnectionFromClient::set_window_base_size_and_size_increment(i32 window_id, Gfx::IntSize const& base_size, Gfx::IntSize const& size_increment)
{
auto it = m_windows.find(window_id);