diff --git a/Library/GameMode.cpp b/Library/GameMode.cpp index 03e23cc59..8495072e2 100644 --- a/Library/GameMode.cpp +++ b/Library/GameMode.cpp @@ -382,6 +382,8 @@ void GameMode::EnterGameMode() rainmeter.DeleteAllSkins(); rainmeter.DeleteAllUnmanagedSkins(); // Redelete unmanaged windows caused by OnCloseAction + rainmeter.ShowTrayIconIfNecessary(); + m_State = State::Enabled; } else diff --git a/Library/Rainmeter.cpp b/Library/Rainmeter.cpp index c9ae90f9e..df3cd7ac0 100644 --- a/Library/Rainmeter.cpp +++ b/Library/Rainmeter.cpp @@ -1187,11 +1187,7 @@ void Rainmeter::DeactivateSkin(Skin* skin, int folderIndex, bool save) skin->Deactivate(); - // Show tray icon if no skins are active - if (m_Skins.empty()) - { - m_TrayIcon->SetTrayIcon(true, true); - } + ShowTrayIconIfNecessary(); } } @@ -2238,3 +2234,11 @@ void Rainmeter::CheckSettingsFileEncoding(const std::wstring& iniFile, std::wstr } } } + +void Rainmeter::ShowTrayIconIfNecessary() +{ + if (m_Skins.empty()) // Show tray icon if no skins are active + { + m_TrayIcon->SetTrayIcon(true, true); + } +} diff --git a/Library/Rainmeter.h b/Library/Rainmeter.h index 5f4b135ef..654c52a69 100644 --- a/Library/Rainmeter.h +++ b/Library/Rainmeter.h @@ -224,6 +224,8 @@ class Rainmeter void TestSettingsFile(bool bDefaultIniLocation); void CheckSettingsFileEncoding(const std::wstring& iniFile, std::wstring* log); + void ShowTrayIconIfNecessary(); + TrayIcon* m_TrayIcon; std::multimap m_SkinOrders;