[USER32] We're still using this one. Fixes build.
[reactos.git] / win32ss / user / user32 / windows / defwnd.c
index 3d511c4..27dcc57 100644 (file)
@@ -9,17 +9,11 @@
  *      06-06-2001  CSH  Created
  */
 
-/* INCLUDES ******************************************************************/
-
 #include <user32.h>
 
 #include <wine/debug.h>
 WINE_DEFAULT_DEBUG_CHANNEL(user32);
 
-/* GLOBALS *******************************************************************/
-
-/* FUNCTIONS *****************************************************************/
-
 /*
  * @implemented
  */
@@ -50,7 +44,6 @@ GetSysColorBrush(int nIndex)
     return gpsi->ahbrSystem[nIndex];
   }
 
-  SetLastError(ERROR_INVALID_PARAMETER);
   return NULL;
 }
 
@@ -163,6 +156,11 @@ DefWndHandleSysCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
       case SC_MOUSEMENU:
       case SC_KEYMENU:
       case SC_SCREENSAVE:
+      case SC_MINIMIZE:
+      case SC_MAXIMIZE:
+      case SC_RESTORE:
+      case SC_CLOSE:
+      case SC_HOTKEY:
         NtUserMessageCall( hWnd, WM_SYSCOMMAND, wParam, lParam, (ULONG_PTR)&lResult, FNID_DEFWINDOWPROC, FALSE);
         return 0;
 
@@ -179,27 +177,6 @@ DefWndHandleSysCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
   switch (wParam & 0xfff0)
     {
 
-    case SC_MINIMIZE:
-        if (hWnd == GetActiveWindow())
-            ShowOwnedPopups(hWnd,FALSE);
-        ShowWindow( hWnd, SW_MINIMIZE );
-        break;
-
-    case SC_MAXIMIZE:
-        if (IsIconic(hWnd) && hWnd == GetActiveWindow())
-            ShowOwnedPopups(hWnd,TRUE);
-        ShowWindow( hWnd, SW_MAXIMIZE );
-        break;
-
-    case SC_RESTORE:
-        if (IsIconic(hWnd) && hWnd == GetActiveWindow())
-            ShowOwnedPopups(hWnd,TRUE);
-        ShowWindow( hWnd, SW_RESTORE );
-        break;
-
-      case SC_CLOSE:
-        return SendMessageW(hWnd, WM_CLOSE, 0, 0);
-
       case SC_VSCROLL:
       case SC_HSCROLL:
         {
@@ -219,30 +196,6 @@ DefWndHandleSysCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
         DoAppSwitch( wParam, lParam);
         break;
 
-      case SC_HOTKEY:
-        {
-           HWND hwnd, hWndLastActive;
-           PWND pWnd;
-
-           hwnd = (HWND)lParam;
-           pWnd = ValidateHwnd(hwnd);
-           if (pWnd)
-           {
-              hWndLastActive = GetLastActivePopup(hwnd);
-              if (hWndLastActive)
-              {
-                 hwnd = hWndLastActive;
-                 pWnd = ValidateHwnd(hwnd);
-              }
-              SetForegroundWindow(hwnd);
-              if (pWnd->style & WS_MINIMIZE)
-              {
-                 PostMessage(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0);
-              }
-           }
-        }
-        break;
-
       default:
         FIXME("Unimplemented DefWndHandleSysCommand wParam 0x%x\n",wParam);
         break;
@@ -416,6 +369,15 @@ User32DefWindowProc(HWND hWnd,
            ERR("WM_NCRBUTTONUP\n");
             break;
 
+        case WM_XBUTTONUP:
+        case WM_NCXBUTTONUP:
+            if (HIWORD(wParam) == XBUTTON1 || HIWORD(wParam) == XBUTTON2)
+            {
+               SendMessageW(hWnd, WM_APPCOMMAND, (WPARAM)hWnd,
+                         MAKELPARAM(LOWORD(wParam), FAPPCOMMAND_MOUSE | HIWORD(wParam)));
+            }
+            break;
+
         case WM_CONTEXTMENU:
         {
             if (GetWindowLongPtrW(hWnd, GWL_STYLE) & WS_CHILD)