Re: (resend)systray: keep systray hidden when requested by moving itoff screen
"Aric Stewart" <aric(a)codeweavers.com> wrote:
diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c index 8b82d9a..4a7e57e 100644 --- a/programs/explorer/systray.c +++ b/programs/explorer/systray.c @@ -437,6 +437,19 @@ 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) + { + int offscreen; + SIZE size; + size = get_window_size(); + offscreen = GetSystemMetrics(SM_XVIRTUALSCREEN); + offscreen += GetSystemMetrics(SM_CXVIRTUALSCREEN); + offscreen += 20; + MoveWindow(tray_window, offscreen, -500, size.cx, size.cy, TRUE); + } + break; + case WM_TIMER: cleanup_destroyed_windows(); break; @@ -568,5 +581,15 @@ void initialize_systray(void) WINE_ERR("Could not create tray window\n"); return; } + + if (hide_systray) + { + int offscreen; + offscreen = GetSystemMetrics(SM_XVIRTUALSCREEN); + offscreen += GetSystemMetrics(SM_CXVIRTUALSCREEN); + offscreen += 20; + MoveWindow(tray_window, offscreen, -500, size.cx, size.cy, TRUE); + } + SetTimer( tray_window, 1, 2000, NULL ); }
Why not add a function do_hide_systray() and call it unconditionally from both places? do_hide_systray() { if (!hide_systray) return; [hide systray] } That would help keeping the code coherent if somebody changes one of places later. -- Dmitry.
participants (1)
-
Dmitry Timoshkov