diff --git a/controls/button.c b/controls/button.c
index 90bafbbfb9385f74f4e9bf23440217322784ad01..ccb1052d0b72f6259797bbf9c795ce5edccbc8ca 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -279,7 +279,7 @@ static LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
         break;
 
     case WM_MOUSEMOVE:
-        if (GetCapture() == hWnd)
+        if ((wParam & MK_LBUTTON) && GetCapture() == hWnd)
         {
             GetClientRect( hWnd, &rect );
             SendMessageW( hWnd, BM_SETSTATE, PtInRect(&rect, pt), 0 );