[ros-diffs] [rharabien] 52135: [WIN32K] - Check if window object still exist in proper place - Send WM_MOUSEMOVE message if mouse is over appearing window

rharabien at svn.reactos.org rharabien at svn.reactos.org
Tue Jun 7 20:09:07 UTC 2011


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/ntuser/winpos.c?rev=52135&r1=52134&r2=52135&view=diff
==============================================================================
--- 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;




More information about the Ros-diffs mailing list