[WIN32SS:NTUSER] Fix Window-snap madness (#1246)
authorDenis Malikov <Getequ@users.noreply.github.com>
Sat, 19 Jan 2019 22:05:19 +0000 (05:05 +0700)
committerHermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Sat, 19 Jan 2019 22:05:19 +0000 (23:05 +0100)
Desktop window was treated as possible to resize.
Fix for 7e396787

CORE-15624

win32ss/user/ntuser/defwnd.c
win32ss/user/ntuser/nonclient.c

index 67215d1..fc55c4a 100644 (file)
@@ -787,6 +787,11 @@ IntDefWindowProc(
             PWND topWnd = UserGetWindowObject(hwndTop);
             if (topWnd)
             {
             PWND topWnd = UserGetWindowObject(hwndTop);
             if (topWnd)
             {
+               if ((topWnd->style & WS_THICKFRAME) == 0)
+               {
+                  return 0;
+               }
+               
                if (wParam == VK_DOWN)
                {
                    if (topWnd->style & WS_MAXIMIZE)
                if (wParam == VK_DOWN)
                {
                    if (topWnd->style & WS_MAXIMIZE)
index 7a5fcc4..ba8dece 100644 (file)
@@ -395,7 +395,7 @@ DefWndDoSizeMove(PWND pwnd, WORD wParam)
       if (msg.message == WM_LBUTTONUP)
       {
          // check for snapping if was moved by caption
       if (msg.message == WM_LBUTTONUP)
       {
          // check for snapping if was moved by caption
-         if (hittest == HTCAPTION)
+         if (hittest == HTCAPTION && thickframe && (ExStyle & WS_EX_MDICHILD) == 0)
          {
             RECT snapRect;
             BOOL doSideSnap = FALSE;
          {
             RECT snapRect;
             BOOL doSideSnap = FALSE;
@@ -1618,6 +1618,10 @@ NC_HandleNCLButtonDblClk(PWND pWnd, WPARAM wParam, LPARAM lParam)
     case HTBOTTOM:
     {
       RECT sizingRect = pWnd->rcWindow, mouseRect;
     case HTBOTTOM:
     {
       RECT sizingRect = pWnd->rcWindow, mouseRect;
+      
+      if (pWnd->ExStyle & WS_EX_MDICHILD)
+          break;
+      
       UserSystemParametersInfo(SPI_GETWORKAREA, 0, &mouseRect, 0);
         
       co_WinPosSetWindowPos(pWnd,
       UserSystemParametersInfo(SPI_GETWORKAREA, 0, &mouseRect, 0);
         
       co_WinPosSetWindowPos(pWnd,