Fixed the GadgetWindow AlwaysOnTop option (could be lost by tracking "Show Desktop" events even when AlwaysOnTop = true).
authormoel.mich
Tue, 07 Sep 2010 18:51:42 +0000
changeset 180d40f49d45614
parent 179 a3530106314b
child 181 9901dbb25f18
Fixed the GadgetWindow AlwaysOnTop option (could be lost by tracking "Show Desktop" events even when AlwaysOnTop = true).
GUI/GadgetWindow.cs
     1.1 --- a/GUI/GadgetWindow.cs	Tue Sep 07 18:40:00 2010 +0000
     1.2 +++ b/GUI/GadgetWindow.cs	Tue Sep 07 18:51:42 2010 +0000
     1.3 @@ -226,10 +226,13 @@
     1.4            NativeMethods.SetWindowPos(Handle, IntPtr.Zero, 0, 0, 0, 0,
     1.5              SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER |
     1.6              (value ? SWP_SHOWWINDOW : SWP_HIDEWINDOW));
     1.7 -          if (value)
     1.8 -            ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
     1.9 -          else
    1.10 -            ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;         
    1.11 +          if (value) {
    1.12 +            if (!alwaysOnTop)
    1.13 +              ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
    1.14 +          } else {
    1.15 +            if (!alwaysOnTop)
    1.16 +              ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;
    1.17 +          }
    1.18          }
    1.19        }
    1.20      }
    1.21 @@ -252,11 +255,13 @@
    1.22          if (value != alwaysOnTop) {
    1.23            alwaysOnTop = value;
    1.24            if (alwaysOnTop) {
    1.25 -            ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;
    1.26 +            if (visible)
    1.27 +              ShowDesktop.Instance.ShowDesktopChanged -= ShowDesktopChanged;
    1.28              MoveToTopMost(Handle);            
    1.29            } else {
    1.30              MoveToBottom(Handle);
    1.31 -            ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
    1.32 +            if (visible)
    1.33 +              ShowDesktop.Instance.ShowDesktopChanged += ShowDesktopChanged;
    1.34            }
    1.35          }
    1.36        }