Aric Stewart : systray: Keep systray hidden when requested by moving it off screen.

Alexandre Julliard julliard at winehq.org
Fri Aug 29 07:30:58 CDT 2008


Module: wine
Branch: master
Commit: f8096d2b84f29e2352e536b20d5e2d93d9fd0f47
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f8096d2b84f29e2352e536b20d5e2d93d9fd0f47

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Aug 27 12:31:14 2008 -0500

systray: Keep systray hidden when requested by moving it off screen.

---

 programs/explorer/systray.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c
index 8b82d9a..07e683a 100644
--- a/programs/explorer/systray.c
+++ b/programs/explorer/systray.c
@@ -430,6 +430,14 @@ static BOOL handle_incoming(HWND hwndSource, COPYDATASTRUCT *cds)
     return ret;
 }
 
+static void do_hide_systray(void)
+{
+    SetWindowPos( tray_window, 0,
+                  GetSystemMetrics(SM_XVIRTUALSCREEN) + GetSystemMetrics(SM_CXVIRTUALSCREEN),
+                  GetSystemMetrics(SM_YVIRTUALSCREEN) + GetSystemMetrics(SM_CYVIRTUALSCREEN),
+                  0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE );
+}
+
 static LRESULT WINAPI tray_wndproc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 {
     switch (msg)
@@ -437,6 +445,10 @@ static LRESULT WINAPI tray_wndproc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM l
     case WM_COPYDATA:
         return handle_incoming((HWND)wparam, (COPYDATASTRUCT *)lparam);
 
+    case WM_DISPLAYCHANGE:
+        if (hide_systray) do_hide_systray();
+        break;
+
     case WM_TIMER:
         cleanup_destroyed_windows();
         break;
@@ -568,5 +580,8 @@ void initialize_systray(void)
         WINE_ERR("Could not create tray window\n");
         return;
     }
+
+    if (hide_systray) do_hide_systray();
+
     SetTimer( tray_window, 1, 2000, NULL );
 }




More information about the wine-cvs mailing list