mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 16:48:12 +00:00
WindowServer+LibGUI: Remove awkward roundtrip for set wallpaper response
Previously we would wait for a separate message confirming that a wallpaper got set instead of just calling a synchronous api. I'm guessing that this was a limitation of the IPC system when WindowServer got ported to using it. This patch removes the SetWallpaperFinished message and updates the set_wallpaper api to synchronously return a success boolean.
This commit is contained in:
parent
2cdc7c4ca0
commit
ad060befad
7 changed files with 8 additions and 17 deletions
|
@ -67,14 +67,14 @@ bool Desktop::set_wallpaper(RefPtr<Gfx::Bitmap> wallpaper_bitmap, Optional<Strin
|
|||
return false;
|
||||
|
||||
TemporaryChange is_setting_desktop_wallpaper_change(m_is_setting_desktop_wallpaper, true);
|
||||
ConnectionToWindowServer::the().async_set_wallpaper(wallpaper_bitmap ? wallpaper_bitmap->to_shareable_bitmap() : Gfx::ShareableBitmap {});
|
||||
auto ret_val = ConnectionToWindowServer::the().wait_for_specific_message<Messages::WindowClient::SetWallpaperFinished>()->success();
|
||||
auto result = ConnectionToWindowServer::the().set_wallpaper(wallpaper_bitmap ? wallpaper_bitmap->to_shareable_bitmap() : Gfx::ShareableBitmap {});
|
||||
|
||||
if (ret_val && path.has_value()) {
|
||||
if (result && path.has_value()) {
|
||||
dbgln("Saving wallpaper path '{}' to ConfigServer", *path);
|
||||
Config::write_string("WindowManager"sv, "Background"sv, "Wallpaper"sv, *path);
|
||||
}
|
||||
|
||||
return ret_val;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue