浏览代码

WindowServer: Redraw menu items after client updates them somehow

This fixes an issue where the undo/redo actions in TextEditor only
updated once you hovered over them.
Andreas Kling 2 年之前
父节点
当前提交
17687435ca
共有 2 个文件被更改,包括 4 次插入0 次删除
  1. 2 0
      Userland/Services/WindowServer/ConnectionFromClient.cpp
  2. 2 0
      Userland/Services/WindowServer/Menu.cpp

+ 2 - 0
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)

+ 2 - 0
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());
 }