diff --git a/Userland/Services/WindowServer/ConnectionFromClient.cpp b/Userland/Services/WindowServer/ConnectionFromClient.cpp index 04a03cc8c3..4a451e9fb3 100644 --- a/Userland/Services/WindowServer/ConnectionFromClient.cpp +++ b/Userland/Services/WindowServer/ConnectionFromClient.cpp @@ -191,6 +191,8 @@ void ConnectionFromClient::update_menu_item(i32 menu_id, i32 identifier, [[maybe menu_item->set_default(is_default); if (checkable) menu_item->set_checked(checked); + + menu.redraw(*menu_item); } void ConnectionFromClient::remove_menu_item(i32 menu_id, i32 identifier) diff --git a/Userland/Services/WindowServer/Menu.cpp b/Userland/Services/WindowServer/Menu.cpp index 390a86f64f..3254f05bda 100644 --- a/Userland/Services/WindowServer/Menu.cpp +++ b/Userland/Services/WindowServer/Menu.cpp @@ -106,6 +106,8 @@ void Menu::redraw() void Menu::redraw(MenuItem const& menu_item) { + if (!menu_window()) + return; draw(menu_item); menu_window()->invalidate(menu_item.rect()); }