[win32k]
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Sat, 3 Sep 2011 17:53:14 +0000 (17:53 +0000)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Sat, 3 Sep 2011 17:53:14 +0000 (17:53 +0000)
- SetWindowPos should send WM_MOUSEMOVE only when the window under the cursor changes
- Fixes moving winamp window

svn path=/trunk/; revision=53554

reactos/subsystems/win32/win32k/ntuser/winpos.c

index 899eba8..eb9f132 100644 (file)
@@ -950,6 +950,7 @@ co_WinPosSetWindowPos(
    HDC Dc;
    RECTL CopyRect;
    PWND Ancestor;
+   BOOL bPointerInWindow;
 
    ASSERT_REFS_CO(Window);
 
@@ -963,6 +964,7 @@ co_WinPosSetWindowPos(
    {
       return FALSE;
    }
+   bPointerInWindow = IntPtInWindow(Window, gpsi->ptCursor.x, gpsi->ptCursor.y);
 
    WinPos.hwnd = Window->head.h;
    WinPos.hwndInsertAfter = WndInsertAfter;
@@ -1329,7 +1331,7 @@ co_WinPosSetWindowPos(
          IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_WINDOW, CHILDID_SELF, WEF_SETBYWNDPTI);
    }
 
-   if(IntPtInWindow(Window, gpsi->ptCursor.x, gpsi->ptCursor.y))
+   if(bPointerInWindow != IntPtInWindow(Window, gpsi->ptCursor.x, gpsi->ptCursor.y))
    {
       /* Generate mouse move message */
       MSG msg;