> Unfortunately, yes. The way the helper window is currently implemented, > if you remove the WS_CAPTION style, the icon won't be centered when it > gets docked (in GNOME at least.) I tried that when I put together the > systray tooltips patch. Ultimately it caused more problems than it > solved, so I gave up on it. But, it would be really great if you could > figure it out. :)
I've tried kde, fluxbox and xfce4 (and fvwm, but it lacks systray). Now I can see that xfce4 suffers from it. I did not noticed that before. So, I suppose a new patch (attached). Does it work correct with GNOME? In xfce is OK. Thanks for pointing the path! -- Kirill K. Smirnov
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 1430563..f7c34b0 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -71,10 +71,10 @@ inline static BOOL is_window_managed( HW { DWORD style, ex_style; - if (!managed_mode) return FALSE; /* tray window is always managed */ ex_style = GetWindowLongW( hwnd, GWL_EXSTYLE ); if (ex_style & WS_EX_TRAYWINDOW) return TRUE; + if (!managed_mode) return FALSE; /* child windows are not managed */ style = GetWindowLongW( hwnd, GWL_STYLE ); if (style & WS_CHILD) return FALSE; diff --git a/programs/explorer/systray.c b/programs/explorer/systray.c index 7fc66fd..4780b15 100644 --- a/programs/explorer/systray.c +++ b/programs/explorer/systray.c @@ -247,7 +247,7 @@ static void add_icon(NOTIFYICONDATAW *ni /* create the adaptor window */ icon->window = CreateWindowEx(WS_EX_TRAYWINDOW, adaptor_classname, adaptor_windowname, - WS_CLIPSIBLINGS | WS_CAPTION, + WS_CLIPSIBLINGS, CW_USEDEFAULT, CW_USEDEFAULT, rect.right - rect.left, rect.bottom - rect.top,