Author: rharabien Date: Tue Jun 7 20:09:04 2011 New Revision: 52135
URL: http://svn.reactos.org/svn/reactos?rev=52135&view=rev Log: [WIN32K] - Check if window object still exist in proper place - Send WM_MOUSEMOVE message if mouse is over appearing window
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/winpos.c [iso-8859-1] Tue Jun 7 20:09:04 2011 @@ -1008,17 +1008,17 @@
co_WinPosDoWinPosChanging(Window, &WinPos, &NewWindowRect, &NewClientRect);
+ /* Does the window still exist? */ + if (!IntIsWindow(WinPos.hwnd)) + { + EngSetLastError(ERROR_INVALID_WINDOW_HANDLE); + return FALSE; + } + /* Fix up the flags. */ if (!WinPosFixupFlags(&WinPos, Window)) { EngSetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } - - /* Does the window still exist? */ - if (!IntIsWindow(WinPos.hwnd)) - { - EngSetLastError(ERROR_INVALID_WINDOW_HANDLE); return FALSE; }
@@ -1112,11 +1112,9 @@ } else if (WinPos.flags & SWP_SHOWWINDOW) { - if (!(Window->style & WS_VISIBLE) && - Window->spwndParent == UserGetDesktopWindow() ) - { + if (Window->spwndParent == UserGetDesktopWindow()) co_IntShellHookNotify(HSHELL_WINDOWCREATED, (LPARAM)Window->head.h); - } + Window->style |= WS_VISIBLE; }
@@ -1365,6 +1363,17 @@ PWND pWnd = UserGetWindowObject(WinPos.hwnd); if (pWnd) IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_WINDOW, CHILDID_SELF, WEF_SETBYWNDPTI); + } + + if(IntPtInWindow(Window, gpsi->ptCursor.x, gpsi->ptCursor.y)) + { + /* Generate mouse move message */ + MSG msg; + msg.message = WM_MOUSEMOVE; + msg.wParam = IntGetSysCursorInfo()->ButtonsDown; + msg.lParam = MAKELPARAM(gpsi->ptCursor.x, gpsi->ptCursor.y); + msg.pt = gpsi->ptCursor; + co_MsqInsertMouseMessage(&msg, 0, 0, TRUE); }
return TRUE;