Fix explorer regression caused by systray patch
James Liggett
jrliggett at cox.net
Wed Aug 23 15:35:02 CDT 2006
Move systray_dock_window call to X11DRV_CreateWindow so that it can
safely call SetWindowPos without having _CheckNotSysLevel crash the
explorer.
---
dlls/winex11.drv/window.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
89358c780ab0e16566c3bc287defbc3f3257f038
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 30ef89b..ff5c361 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -515,10 +515,6 @@ void X11DRV_set_wm_hints( Display *displ
/* size hints */
set_size_hints( display, data, style );
-
- /* Dock system tray windows. */
- if (ex_style & WS_EX_TRAYWINDOW)
- systray_dock_window( display, data );
/* set the WM_CLIENT_MACHINE and WM_LOCALE_NAME properties */
XSetWMProperties(display, data->whole_window, NULL, NULL, NULL, 0, NULL, NULL, NULL);
@@ -1006,7 +1002,7 @@ BOOL X11DRV_CreateWindow( HWND hwnd, CRE
struct x11drv_win_data *data;
HWND insert_after;
RECT rect;
- DWORD style;
+ DWORD style, ex_style;
CBT_CREATEWNDA cbtc;
CREATESTRUCTA cbcs;
BOOL ret = FALSE;
@@ -1167,6 +1163,13 @@ BOOL X11DRV_CreateWindow( HWND hwnd, CRE
SetWindowPos( hwnd, 0, newPos.left, newPos.top,
newPos.right, newPos.bottom, swFlag );
}
+
+ /* Dock system tray windows. */
+ /* Dock after the window is created so we don't have problems calling
+ * SetWindowPos. */
+ ex_style = GetWindowLongW( hwnd, GWL_EXSTYLE );
+ if (ex_style & WS_EX_TRAYWINDOW)
+ systray_dock_window( display, data );
return TRUE;
--
1.2.4
More information about the wine-patches
mailing list