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/nt…
==============================================================================
--- 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;