From 33eb9a6ddcd6a9b1588ef3b437cc11d612324f5a Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Tue, 1 Jun 2021 17:04:05 -0600 Subject: [PATCH] WindowServer: Use user-defined background color, if defined Use the configured desktop background color, if defined, otherwise default to the current theme's background color. If a user chooses a background color via "desktop settings", then this new color will always be used. Switching themes will delete the user-defined background color, so the background color resets to the theme's defined color. --- Userland/Services/WindowServer/WindowManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp index 162fc3e71c..694e6fb672 100644 --- a/Userland/Services/WindowServer/WindowManager.cpp +++ b/Userland/Services/WindowServer/WindowManager.cpp @@ -1545,7 +1545,7 @@ Gfx::IntRect WindowManager::dnd_rect() const void WindowManager::invalidate_after_theme_or_font_change() { - Compositor::the().set_background_color(palette().desktop_background().to_string()); + Compositor::the().set_background_color(m_config->read_entry("Background", "Color", palette().desktop_background().to_string())); WindowFrame::reload_config(); for_each_window([&](Window& window) { window.frame().theme_changed(); @@ -1569,6 +1569,7 @@ bool WindowManager::update_theme(String theme_path, String theme_name) m_palette = Gfx::PaletteImpl::create_with_anonymous_buffer(new_theme); auto wm_config = Core::ConfigFile::open("/etc/WindowServer.ini"); wm_config->write_entry("Theme", "Name", theme_name); + wm_config->remove_entry("Background", "Color"); wm_config->sync(); invalidate_after_theme_or_font_change(); return true;