user32: Improve a hack for Chronograph 3.0 Master (eterbug #7029).
authorAlexander Morozov <amorozov@etersoft.ru>
Thu, 8 Sep 2011 12:42:34 +0000 (16:42 +0400)
committerTest Robot <wine-patches-test@office.etersoft.ru>
Thu, 8 Sep 2011 17:59:15 +0000 (21:59 +0400)
dlls/user32/winpos.c

index 1e563ef3cf44d8e5d03cd7110b96970937091d00..c26135ee1a804b3ab66fbc969920a9775efefcb7 100644 (file)
@@ -34,6 +34,7 @@
 #include "controls.h"
 #include "user_private.h"
 #include "win.h"
+#include "wine/unicode.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(win);
@@ -1894,7 +1895,14 @@ BOOL USER_SetWindowPos( WINDOWPOS * winpos )
     if (GetWindowLongW(winpos->hwnd, GWL_EXSTYLE) ==
         (WS_EX_MDICHILD | WS_EX_WINDOWEDGE) &&
         winpos->flags == (SWP_STATECHANGED | SWP_FRAMECHANGED |
-        SWP_NOACTIVATE | SWP_SHOWWINDOW | SWP_NOZORDER)) return FALSE;
+        SWP_NOACTIVATE | SWP_SHOWWINDOW | SWP_NOZORDER))
+    {
+        static const WCHAR list_form[] = {'L','i','s','t','F','o','r','m',0};
+        WCHAR buf[30];
+        if (GetClassNameW(winpos->hwnd, buf, sizeof(buf) / sizeof(WCHAR)) &&
+            strstrW(buf, list_form))
+            return FALSE;
+    }
 
     if (!SWP_DoWinPosChanging( winpos, &newWindowRect, &newClientRect )) return FALSE;