diff --git a/Userland/Services/Taskbar/main.cpp b/Userland/Services/Taskbar/main.cpp index 19720fde75..2fcc93ade0 100644 --- a/Userland/Services/Taskbar/main.cpp +++ b/Userland/Services/Taskbar/main.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2021, Andreas Kling + * Copyright (c) 2022, Jakob-Niklas See * * SPDX-License-Identifier: BSD-2-Clause */ @@ -20,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -241,6 +243,16 @@ ErrorOr> build_system_menu(WindowRefence& window_ref) } } + GUI::Application::the()->on_theme_change = [&]() { + if (g_themes_menu->is_visible()) + return; + auto current_theme_name = GUI::ConnectionToWindowServer::the().get_system_theme(); + for (size_t index = 0; index < g_themes.size(); ++index) { + auto* action = g_themes_menu->action_at(index); + action->set_checked(action->text() == current_theme_name); + } + }; + system_menu->add_action(GUI::Action::create("&Settings", Gfx::Bitmap::try_load_from_file("/res/icons/16x16/app-settings.png").release_value_but_fixme_should_propagate_errors(), [&](auto&) { GUI::Process::spawn_or_show_error(window_ref.get(), "/bin/Settings"sv); }));