Fixed the GadgetWindow AlwaysOnTop option (could be lost by tracking "Show Desktop" events even when AlwaysOnTop = true).

This commit is contained in:
Michael Möller 2010-09-07 18:51:42 +00:00
parent 4054b2d9fb
commit 92a7f77851

View File

@ -226,10 +226,13 @@ namespace OpenHardwareMonitor.GUI {
NativeMethods.SetWindowPos(Handle, IntPtr.Zero, 0, 0, 0, 0, NativeMethods.SetWindowPos(Handle, IntPtr.Zero, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER |
(value ? SWP_SHOWWINDOW : SWP_HIDEWINDOW)); (value ? SWP_SHOWWINDOW : SWP_HIDEWINDOW));
if (value) if (value) {
ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged; if (!alwaysOnTop)
else ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged; } else {
if (!alwaysOnTop)
ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;
}
} }
} }
} }
@ -252,11 +255,13 @@ namespace OpenHardwareMonitor.GUI {
if (value != alwaysOnTop) { if (value != alwaysOnTop) {
alwaysOnTop = value; alwaysOnTop = value;
if (alwaysOnTop) { if (alwaysOnTop) {
ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged; if (visible)
ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;
MoveToTopMost(Handle); MoveToTopMost(Handle);
} else { } else {
MoveToBottom(Handle); MoveToBottom(Handle);
ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged; if (visible)
ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
} }
} }
} }