[BUG] Do not restart if DisplayChange was due to STM open (#223), version 1.0.25.1

This commit is contained in:
Markus Hofknecht 2021-11-09 15:12:52 +01:00
parent c84b7b3996
commit 467afe57d1
4 changed files with 26 additions and 10 deletions

View file

@ -40,7 +40,11 @@ namespace SystemTrayMenu
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{ {
if (!menus.IsOpenCloseStateOpening()) if (menus.IsShortlyAfterOpening())
{
Log.Info("Ignored DisplaySettingsChanged, because IsShortlyAfterOpening == true");
}
else
{ {
AppRestart.ByDisplaySettings(); AppRestart.ByDisplaySettings();
} }

View file

@ -33,6 +33,8 @@ namespace SystemTrayMenu.Business
private readonly Timer timerStillActiveCheck = new Timer(); private readonly Timer timerStillActiveCheck = new Timer();
private readonly WaitLeave waitLeave = new WaitLeave(Properties.Settings.Default.TimeUntilCloses); private readonly WaitLeave waitLeave = new WaitLeave(Properties.Settings.Default.TimeUntilCloses);
private DateTime deactivatedTime = DateTime.MinValue; private DateTime deactivatedTime = DateTime.MinValue;
private DateTime dateTimeLastOpening = DateTime.MinValue;
private DateTime dateTimeDisplaySettingsChanged = DateTime.MinValue;
private OpenCloseState openCloseState = OpenCloseState.Default; private OpenCloseState openCloseState = OpenCloseState.Default;
private bool showingMessageBox; private bool showingMessageBox;
private TaskbarPosition taskbarPosition = new WindowsTaskbar().Position; private TaskbarPosition taskbarPosition = new WindowsTaskbar().Position;
@ -80,7 +82,6 @@ namespace SystemTrayMenu.Business
"MessageRootFolderEmpty")); "MessageRootFolderEmpty"));
OpenFolder(); OpenFolder();
Config.SetFolderByUser(); Config.SetFolderByUser();
openCloseState = OpenCloseState.Default;
showingMessageBox = false; showingMessageBox = false;
} }
@ -93,7 +94,6 @@ namespace SystemTrayMenu.Business
"MessageRootFolderNoAccess")); "MessageRootFolderNoAccess"));
OpenFolder(); OpenFolder();
Config.SetFolderByUser(); Config.SetFolderByUser();
openCloseState = OpenCloseState.Default;
showingMessageBox = false; showingMessageBox = false;
} }
@ -104,6 +104,8 @@ namespace SystemTrayMenu.Business
default: default:
break; break;
} }
openCloseState = OpenCloseState.Default;
} }
waitToOpenMenu.StopLoadMenu += WaitToOpenMenu_StopLoadMenu; waitToOpenMenu.StopLoadMenu += WaitToOpenMenu_StopLoadMenu;
@ -483,9 +485,13 @@ namespace SystemTrayMenu.Business
internal bool IsOpenCloseStateOpening() internal bool IsOpenCloseStateOpening()
{ {
Log.Info(openCloseState.ToString()); return openCloseState == OpenCloseState.Opening || (DateTime.Now - dateTimeDisplaySettingsChanged).TotalMilliseconds < 500;
return openCloseState == OpenCloseState.Opening || }
(openCloseState == OpenCloseState.Default && menus[0] != null && menus[0].Visible);
internal bool IsShortlyAfterOpening()
{
dateTimeDisplaySettingsChanged = DateTime.Now;
return (DateTime.Now - dateTimeLastOpening).TotalMilliseconds < 2000;
} }
internal void SwitchOpenClose(bool byClick) internal void SwitchOpenClose(bool byClick)
@ -519,6 +525,7 @@ namespace SystemTrayMenu.Business
} }
deactivatedTime = DateTime.MinValue; deactivatedTime = DateTime.MinValue;
dateTimeLastOpening = DateTime.Now;
} }
internal void DisposeMenu(Menu menuToDispose) internal void DisposeMenu(Menu menuToDispose)
@ -672,9 +679,14 @@ namespace SystemTrayMenu.Business
menu.Deactivate += Deactivate; menu.Deactivate += Deactivate;
void Deactivate(object sender, EventArgs e) void Deactivate(object sender, EventArgs e)
{ {
if (!Properties.Settings.Default.StaysOpenWhenFocusLostAfterEnterPressed || if (IsOpenCloseStateOpening())
{
Log.Info("Ignored Deactivate, because openCloseState == OpenCloseState.Opening");
}
else if (!Properties.Settings.Default.StaysOpenWhenFocusLostAfterEnterPressed ||
!waitingForReactivate) !waitingForReactivate)
{ {
Log.Info($"Deactivate {openCloseState}");
FadeHalfOrOutIfNeeded(); FadeHalfOrOutIfNeeded();
if (!IsActive()) if (!IsActive())
{ {

View file

@ -10,7 +10,7 @@
<Identity <Identity
Name="49543SystemTrayMenu.SystemTrayMenu" Name="49543SystemTrayMenu.SystemTrayMenu"
Publisher="CN=5884501C-92ED-45DE-9508-9D987C314243" Publisher="CN=5884501C-92ED-45DE-9508-9D987C314243"
Version="1.0.24.0" /> Version="1.0.25.0" />
<Properties> <Properties>
<DisplayName>SystemTrayMenu</DisplayName> <DisplayName>SystemTrayMenu</DisplayName>

View file

@ -39,5 +39,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.25.0")] [assembly: AssemblyVersion("1.0.25.1")]
[assembly: AssemblyFileVersion("1.0.25.0")] [assembly: AssemblyFileVersion("1.0.25.1")]