mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 08:30:21 +00:00
[EXPLORER] trayclock: Better handle timers, especially when it is hidden
This commit is contained in:
parent
e45b15aca2
commit
e68bee7518
1 changed files with 32 additions and 11 deletions
|
@ -452,8 +452,7 @@ BOOL CTrayClockWnd::ResetTime()
|
|||
KillTimer(ID_TRAYCLOCK_TIMER);
|
||||
IsTimerEnabled = FALSE;
|
||||
}
|
||||
|
||||
if (IsInitTimerEnabled)
|
||||
else if (IsInitTimerEnabled)
|
||||
{
|
||||
KillTimer(ID_TRAYCLOCK_TIMER_INIT);
|
||||
}
|
||||
|
@ -464,9 +463,6 @@ BOOL CTrayClockWnd::ResetTime()
|
|||
Ret = SetTimer(ID_TRAYCLOCK_TIMER_INIT, uiDueTime, NULL) != 0;
|
||||
IsInitTimerEnabled = Ret;
|
||||
|
||||
/* Update the time */
|
||||
Update();
|
||||
|
||||
return Ret;
|
||||
}
|
||||
|
||||
|
@ -500,9 +496,6 @@ VOID CTrayClockWnd::CalibrateTimer()
|
|||
uiWait2. */
|
||||
Ret = SetTimer(ID_TRAYCLOCK_TIMER, uiWait2, NULL) != 0;
|
||||
IsTimerEnabled = Ret;
|
||||
|
||||
/* Update the time */
|
||||
Update();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -510,6 +503,9 @@ VOID CTrayClockWnd::CalibrateTimer()
|
|||
minute/second ends. */
|
||||
ResetTime();
|
||||
}
|
||||
|
||||
/* Update the time */
|
||||
Update();
|
||||
}
|
||||
|
||||
LRESULT CTrayClockWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
||||
|
@ -519,8 +515,7 @@ LRESULT CTrayClockWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&
|
|||
{
|
||||
KillTimer(ID_TRAYCLOCK_TIMER);
|
||||
}
|
||||
|
||||
if (IsInitTimerEnabled)
|
||||
else if (IsInitTimerEnabled)
|
||||
{
|
||||
KillTimer(ID_TRAYCLOCK_TIMER_INIT);
|
||||
}
|
||||
|
@ -668,7 +663,14 @@ LRESULT CTrayClockWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& b
|
|||
|
||||
m_tooltip.AddTool(&ti);
|
||||
|
||||
ResetTime();
|
||||
if (!g_TaskbarSettings.sr.HideClock)
|
||||
{
|
||||
ResetTime();
|
||||
}
|
||||
|
||||
/* Update the time */
|
||||
Update();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -702,6 +704,25 @@ LRESULT CTrayClockWnd::OnTaskbarSettingsChanged(UINT uMsg, WPARAM wParam, LPARAM
|
|||
g_TaskbarSettings.sr.HideClock = newSettings->sr.HideClock;
|
||||
ShowWindow(g_TaskbarSettings.sr.HideClock ? SW_HIDE : SW_SHOW);
|
||||
bRealign = TRUE;
|
||||
|
||||
if (g_TaskbarSettings.sr.HideClock)
|
||||
{
|
||||
/* Disable all timers */
|
||||
if (IsTimerEnabled)
|
||||
{
|
||||
KillTimer(ID_TRAYCLOCK_TIMER);
|
||||
IsTimerEnabled = FALSE;
|
||||
}
|
||||
else if (IsInitTimerEnabled)
|
||||
{
|
||||
KillTimer(ID_TRAYCLOCK_TIMER_INIT);
|
||||
IsInitTimerEnabled = FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ResetTime();
|
||||
}
|
||||
}
|
||||
|
||||
if (bRealign)
|
||||
|
|
Loading…
Reference in a new issue