diff --git a/src/platformtheme/kdeplatformsystemtrayicon.cpp b/src/platformtheme/kdeplatformsystemtrayicon.cpp --- a/src/platformtheme/kdeplatformsystemtrayicon.cpp +++ b/src/platformtheme/kdeplatformsystemtrayicon.cpp @@ -177,11 +177,21 @@ connect(m_menu, &QMenu::aboutToShow, this, &QPlatformMenu::aboutToShow); connect(m_menu, &QMenu::aboutToHide, this, &QPlatformMenu::aboutToHide); - m_menu->setEnabled(m_enabled); - m_menu->setIcon(m_icon); - m_menu->setTitle(m_text); - m_menu->setVisible(m_visible); - m_menu->setSeparatorsCollapsible(m_separatorsCollapsible); + if (!m_icon.isNull()) { + m_menu->setIcon(m_icon); + } + if (m_menu->title() != m_text) { + m_menu->setTitle(m_text); + } + if (m_menu->isEnabled() != m_enabled) { + m_menu->setEnabled(m_enabled); + } + if (!m_visible) { + m_menu->setVisible(m_visible); + } + if (m_menu->separatorsCollapsible() != m_separatorsCollapsible) { + m_menu->setSeparatorsCollapsible(m_separatorsCollapsible); + } for (auto item : m_items) { m_menu->addAction(item->action()); }