diff --git a/Userland/Libraries/LibGUI/Action.cpp b/Userland/Libraries/LibGUI/Action.cpp index 64aee3d101..6754d18434 100644 --- a/Userland/Libraries/LibGUI/Action.cpp +++ b/Userland/Libraries/LibGUI/Action.cpp @@ -343,4 +343,14 @@ void Action::set_icon(const Gfx::Bitmap* icon) m_icon = icon; } +void Action::set_text(String text) +{ + if (m_text == text) + return; + m_text = move(text); + for_each_menu_item([&](auto& menu_item) { + menu_item.update_from_action({}); + }); +} + } diff --git a/Userland/Libraries/LibGUI/Action.h b/Userland/Libraries/LibGUI/Action.h index 74464bad7b..0d25a1e553 100644 --- a/Userland/Libraries/LibGUI/Action.h +++ b/Userland/Libraries/LibGUI/Action.h @@ -66,7 +66,7 @@ public: virtual ~Action() override; String text() const { return m_text; } - void set_text(String text) { m_text = move(text); } + void set_text(String); String const& status_tip() const { return m_status_tip; } void set_status_tip(String status_tip) { m_status_tip = move(status_tip); } diff --git a/Userland/Libraries/LibGUI/MenuItem.h b/Userland/Libraries/LibGUI/MenuItem.h index 7495ac8908..6a95dbefe9 100644 --- a/Userland/Libraries/LibGUI/MenuItem.h +++ b/Userland/Libraries/LibGUI/MenuItem.h @@ -50,6 +50,8 @@ public: void set_menu_id(Badge, unsigned menu_id); void set_identifier(Badge, unsigned identifier); + void update_from_action(Badge) { update_window_server(); } + private: void update_window_server();