[NtUser|User32]
authorJames Tabor <james.tabor@reactos.org>
Wed, 9 Apr 2014 20:50:03 +0000 (20:50 +0000)
committerJames Tabor <james.tabor@reactos.org>
Wed, 9 Apr 2014 20:50:03 +0000 (20:50 +0000)
- Sync port (more) from wine to update code before move and test. See CORE-7447.

svn path=/trunk/; revision=62696

reactos/win32ss/user/ntuser/defwnd.c
reactos/win32ss/user/user32/windows/defwnd.c

index e617021..ea2e385 100644 (file)
@@ -169,19 +169,19 @@ DefWndHandleWindowPosChanged(PWND pWnd, WINDOWPOS* Pos)
   IntGetClientRect(pWnd, &Rect);
   IntMapWindowPoints(pWnd, (style & WS_CHILD ? IntGetParent(pWnd) : NULL), (LPPOINT) &Rect, 2);
 
-  if (! (Pos->flags & SWP_NOCLIENTMOVE))
+  if (!(Pos->flags & SWP_NOCLIENTMOVE))
   {
       co_IntSendMessage(UserHMGetHandle(pWnd), WM_MOVE, 0, MAKELONG(Rect.left, Rect.top));
   }
 
-  if (! (Pos->flags & SWP_NOCLIENTSIZE))
+  if (!(Pos->flags & SWP_NOCLIENTSIZE) || (Pos->flags & SWP_STATECHANGED))
   {
-      WPARAM wp = SIZE_RESTORED;
-
-      if (style & WS_MAXIMIZE) wp = SIZE_MAXIMIZED;
-      else if (style & WS_MINIMIZE) wp = SIZE_MINIMIZED;
-
-      co_IntSendMessage(UserHMGetHandle(pWnd), WM_SIZE, wp, MAKELONG(Rect.right - Rect.left, Rect.bottom - Rect.top));
+      if (style & WS_MINIMIZE) co_IntSendMessage(UserHMGetHandle(pWnd), WM_SIZE, SIZE_MINIMIZED, 0 );
+      else
+      {
+         WPARAM wp = (style & WS_MAXIMIZE) ? SIZE_MAXIMIZED : SIZE_RESTORED;
+         co_IntSendMessage(UserHMGetHandle(pWnd), WM_SIZE, wp, MAKELONG(Rect.right - Rect.left, Rect.bottom - Rect.top));
+      }
   }
   return 0;
 }
@@ -200,6 +200,15 @@ UserDrawWindowFrame(HDC hdc,
   NtGdiSelectBrush( hdc, hbrush );
 }
 
+VOID FASTCALL
+UserDrawMovingFrame(HDC hdc,
+                    RECTL *rect,
+                    BOOL thickframe)
+{
+  if (thickframe) UserDrawWindowFrame(hdc, rect, UserGetSystemMetrics(SM_CXFRAME), UserGetSystemMetrics(SM_CYFRAME));
+  else UserDrawWindowFrame(hdc, rect, 1, 1);
+}
+
 LRESULT FASTCALL
 DefWndHandleSysCommand(PWND pWnd, WPARAM wParam, LPARAM lParam)
 {
@@ -216,6 +225,12 @@ DefWndHandleSysCommand(PWND pWnd, WPARAM wParam, LPARAM lParam)
 
    switch (wParam & 0xfff0)
    {
+      case SC_MOVE:
+      case SC_SIZE:
+        //DefWndDoSizeMove(pWnd, wParam);
+        ERR("SC_MOVESIZE\n");
+        break;
+
       case SC_SCREENSAVE:
         ERR("Screensaver Called!\n");
         UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_START_SCREENSAVE, 0); // always lParam 0 == not Secure
@@ -302,8 +317,10 @@ IntDefWindowProc(
            return (LRESULT) DefWndControlColor((HDC)wParam, HIWORD(lParam));
 
       case WM_GETHOTKEY:
+         //ERR("WM_GETHOTKEY\n");
          return DefWndGetHotKey(Wnd);
       case WM_SETHOTKEY:
+         //ERR("WM_SETHOTKEY\n");
          return DefWndSetHotKey(Wnd, wParam);
 
       case WM_NCHITTEST:
index 40cf0b6..3745999 100644 (file)
@@ -153,7 +153,7 @@ UserGetInsideRectNC(PWND Wnd, RECT *rect)
     }
 }
 
-#if 0 // Moved to Win32k
+#if 0
 VOID
 DefWndSetRedraw(HWND hWnd, WPARAM wParam)
 {
@@ -344,6 +344,7 @@ DefWndStartSizeMove(HWND hWnd, PWND Wnd, WPARAM wParam, POINT *capturePoint)
     }
     SetCursorPos( pt.x, pt.y );
     DefWndHandleSetCursor(hWnd, (WPARAM)hWnd, MAKELONG(hittest, WM_MOUSEMOVE), Style);
+    //SendMessageW(hWnd, WM_SETCURSOR, (WPARAM)hWnd, MAKELONG(hittest, WM_MOUSEMOVE));
     return hittest;
 }
 
@@ -419,7 +420,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
   //
   // Show window contents while dragging the window, get flag from registry data.
   //
-  SystemParametersInfoA(SPI_GETDRAGFULLWINDOWS, 0, &DragFullWindows, 0);
+  SystemParametersInfoW(SPI_GETDRAGFULLWINDOWS, 0, &DragFullWindows, 0);
 
   pt.x = GET_X_LPARAM(dwPoint);
   pt.y = GET_Y_LPARAM(dwPoint);
@@ -450,11 +451,11 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
          SetCapture(hwnd);
          hittest = DefWndStartSizeMove(hwnd, Wnd, wParam, &capturePoint);
          if (!hittest)
-           {
+         {
              ReleaseCapture();
              return;
-           }
-       }
+         }
+      }
   }
 
   /* Get min/max info */
@@ -515,7 +516,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
   }
 
   IntNotifyWinEvent( EVENT_SYSTEM_MOVESIZESTART, hwnd, OBJID_WINDOW, CHILDID_SELF, 0);
-  SendMessageA( hwnd, WM_ENTERSIZEMOVE, 0, 0 );
+  SendMessageW( hwnd, WM_ENTERSIZEMOVE, 0, 0 );
   NtUserxSetGUIThreadHandle(MSQ_STATE_MOVESIZE, hwnd);
   if (GetCapture() != hwnd) SetCapture( hwnd );
 
@@ -703,8 +704,8 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
   }
 
   NtUserxSetGUIThreadHandle(MSQ_STATE_MOVESIZE, NULL);
-  SendMessageA( hwnd, WM_EXITSIZEMOVE, 0, 0 );
-  SendMessageA( hwnd, WM_SETVISIBLE, !IsIconic(hwnd), 0L);
+  SendMessageW( hwnd, WM_EXITSIZEMOVE, 0, 0 );
+  SendMessageW( hwnd, WM_SETVISIBLE, !IsIconic(hwnd), 0L);
 
   /* window moved or resized */
   if (moved)
@@ -744,7 +745,7 @@ DefWndDoSizeMove(HWND hwnd, WORD wParam)
        if( !moved )
         {
            if( Style & WS_SYSMENU )
-             SendMessageA( hwnd, WM_SYSCOMMAND, SC_MOUSEMENU + HTSYSMENU, MAKELONG(pt.x,pt.y));
+             SendMessageW( hwnd, WM_SYSCOMMAND, SC_MOUSEMENU + HTSYSMENU, MAKELONG(pt.x,pt.y));
         }
     }
 }