Ignore:
Timestamp:
Dec 26, 1999, 6:30:20 PM (26 years ago)
Author:
cbratschi
Message:

non-client fixes, DefWndProc enhancements, several other bugs fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/scroll.cpp

    r2093 r2204  
    1 /* $Id: scroll.cpp,v 1.28 1999-12-16 16:53:57 cbratschi Exp $ */
     1/* $Id: scroll.cpp,v 1.29 1999-12-26 17:30:17 cbratschi Exp $ */
    22/*
    33 * Scrollbar control
     
    732732        if (!(dwStyle & SBS_SIZEGRIP)) return res;
    733733
    734         if (msg == WM_SETCURSOR)
    735         {
    736           RECT rect;
    737 
    738           SCROLL_GetSizeBox(hwnd,dwStyle,&rect);
    739           GetCursorPos(&pt);
    740           ScreenToClient(hwnd,&pt);
    741 
    742           if (PtInRect(&rect,pt))
    743           {
    744             SetCursor(LoadCursorA(0,IDC_SIZENWSEA));
    745             return TRUE;
    746           }
    747 
    748           return DefWindowProcA(hwnd,WM_SETCURSOR,wParam,lParam);
    749         } else if (msg == WM_LBUTTONDOWN)
     734        if (msg == WM_NCHITTEST)
    750735        {
    751736          if (dwStyle & SBS_SIZEGRIP)
     
    755740            pt.x = (SHORT)LOWORD(lParam);
    756741            pt.y = (SHORT)HIWORD(lParam);
     742            ScreenToClient(hwnd,&pt);
    757743            SCROLL_GetSizeBox(hwnd,dwStyle,&rect);
    758744            if (PtInRect(&rect,pt))
    759745            {
    760               HWND hwndFrame;
    761 
    762               Win32BaseWindow *win32wnd = Win32BaseWindow::GetWindowFromHandle(hwnd);
    763               if (!win32wnd) return res;
    764               hwndFrame = OSLibWinQueryWindow(win32wnd->getOS2WindowHandle(),QWOS_OWNER);
    765               win32wnd = Win32BaseWindow::GetWindowFromOS2FrameHandle(hwndFrame);
    766               if (!win32wnd) return res;
    767               FrameTrackFrame(win32wnd,dwStyle & SBS_SIZEBOXTOPLEFTALIGN);
     746              if (dwStyle & SBS_SIZEBOXTOPLEFTALIGN)
     747                return HTTOPLEFT;
     748              else
     749                return HTBOTTOMRIGHT;
    768750            }
    769751          }
     752          return DefWindowProcA(hwnd,WM_NCHITTEST,wParam,lParam);
     753        } else if (msg == WM_LBUTTONDOWN)
     754        {
     755          return DefWindowProcA(hwnd,WM_LBUTTONDOWN,wParam,lParam);
    770756        }
    771757
     
    774760    }
    775761
    776     if (msg == WM_SETCURSOR) return DefWindowProcA(hwnd,WM_SETCURSOR,wParam,lParam);
    777     if (!SCROLL_Scrolling && msg != WM_LBUTTONDOWN) return res;
    778 
    779     vertical = SCROLL_GetScrollBarRect( hwnd, nBar, &rect,
    780                                         &arrowSize, &thumbSize, &thumbPos );
     762    if (msg == WM_NCHITTEST) return DefWindowProcA(hwnd,WM_NCHITTEST,wParam,lParam);
     763
     764    vertical = SCROLL_GetScrollBarRect(hwnd,nBar,&rect,&arrowSize,&thumbSize,&thumbPos);
    781765    if (nBar == SB_CTL) hwndOwner = GetParent(hwnd); else
    782766    {
     
    792776    }
    793777
    794     hwndCtl   = (nBar == SB_CTL) ? hwnd : 0;
     778    hwndCtl = (nBar == SB_CTL) ? hwnd:0;
    795779
    796780    switch (msg)
     
    800784        pt.y = (SHORT)HIWORD(lParam);
    801785        SCROLL_trackVertical = vertical;
    802         SCROLL_trackHitTest = hittest = SCROLL_HitTest( hwnd, nBar, pt, FALSE );
     786        SCROLL_trackHitTest = hittest = SCROLL_HitTest(hwnd,nBar,pt,FALSE);
    803787        if (SCROLL_trackHitTest == SCROLL_NOWHERE)
    804788        {
     
    819803        trackThumbPos = thumbPos;
    820804        prevPt = pt;
    821         SetCapture( hwnd );
    822         if (nBar == SB_CTL) SetFocus( hwnd );
     805        if (nBar == SB_CTL) SetFocus(hwnd);
     806        SetCapture(hwnd);
    823807        break;
    824808
    825809      case WM_MOUSEMOVE:
    826         pt.x = (SHORT)LOWORD(lParam);
    827         pt.y = (SHORT)HIWORD(lParam);
    828         hittest = SCROLL_HitTest( hwnd, nBar, pt, TRUE );
    829         prevPt = pt;
     810        if (SCROLL_Scrolling)
     811        {
     812          pt.x = (SHORT)LOWORD(lParam);
     813          pt.y = (SHORT)HIWORD(lParam);
     814          hittest = SCROLL_HitTest(hwnd,nBar,pt,TRUE);
     815          prevPt = pt;
     816        } else return res;
    830817        break;
    831818
     
    11381125    case WM_LBUTTONDOWN:
    11391126    case WM_LBUTTONUP:
     1127    case WM_NCHITTEST:
    11401128    case WM_CAPTURECHANGED:
    11411129    case WM_MOUSEMOVE:
    1142     case WM_SETCURSOR:
    11431130    case WM_SYSTIMER:
    11441131    case WM_SETFOCUS:
     
    12161203    case WM_LBUTTONDOWN:
    12171204    case WM_LBUTTONUP:
     1205    case WM_NCHITTEST:
    12181206    case WM_CAPTURECHANGED:
    12191207    case WM_MOUSEMOVE:
    1220     case WM_SETCURSOR:
    12211208    case WM_SYSTIMER:
    12221209    case WM_SETFOCUS:
     
    12711258    case WM_LBUTTONDOWN:
    12721259    case WM_LBUTTONUP:
     1260    case WM_NCHITTEST:
    12731261    case WM_CAPTURECHANGED:
    12741262    case WM_MOUSEMOVE:
    1275     case WM_SETCURSOR:
    12761263    case WM_SYSTIMER:
    12771264    case WM_SETFOCUS:
Note: See TracChangeset for help on using the changeset viewer.