Fix the system tray menu not being correctly replaced in setupContextMenu
authorClaudio Cambra <claudio.cambra@gmail.com>
Mon, 20 Jun 2022 17:13:11 +0000 (19:13 +0200)
committerClaudio Cambra <claudio.cambra@gmail.com>
Fri, 24 Jun 2022 16:22:54 +0000 (18:22 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
src/gui/systray.cpp

index 7de521ca7ec52afd49328b2cf1e5fc8626716fb7..128937cde5bd62c4246fbee385e5b2fea526bce8 100644 (file)
@@ -150,6 +150,9 @@ void Systray::setupContextMenu()
     }
 
     _contextMenu = new QMenu();
+    // NOTE: for reasons unclear, setting the the new menu after adding all the actions
+    // will not work on GNOME, as the old menu will not be correctly replaced.
+    setContextMenu(_contextMenu);
 
     if (AccountManager::instance()->accounts().isEmpty()) {
         _contextMenu->addAction(tr("Add account"), this, &Systray::openAccountWizard);
@@ -162,7 +165,6 @@ void Systray::setupContextMenu()
     _contextMenu->addAction(tr("Settings"), this, &Systray::openSettings);
     _contextMenu->addAction(tr("Help"), this, &Systray::openHelp);
     _contextMenu->addAction(tr("Exit %1").arg(Theme::instance()->appNameGUI()), this, &Systray::shutdown);
-    setContextMenu(_contextMenu);
 
     connect(_contextMenu, &QMenu::aboutToShow, [=] {
         const auto folders = FolderMan::instance()->map();