Ignore:
Timestamp:
Oct 11, 2001, 5:16:44 PM (24 years ago)
Author:
sandervl
Message:

scrollbar fixes

File:
1 edited

Legend:

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

    r6243 r7018  
    1 /* $Id: scroll.cpp,v 1.42 2001-07-08 08:06:15 sandervl Exp $ */
     1/* $Id: scroll.cpp,v 1.43 2001-10-11 15:16:44 sandervl Exp $ */
    22/*
    33 * Scrollbar control
     
    226226        }
    227227    }
     228    //testestest
     229    dprintf(("SCROLL_GetScrollBarRect: thumbPos %d thumbSize %d", *thumbPos, *thumbSize));
    228230    return vertical;
    229231}
     
    725727  return 0;
    726728}
     729
     730#ifdef __WIN32OS2__
     731static LRESULT SCROLL_Enable(HWND hwnd, WPARAM wParam)
     732{
     733  SCROLLBAR_INFO* infoPtr = (SCROLLBAR_INFO*)GetInfoPtr(hwnd);
     734
     735  if (!infoPtr) return 0;
     736
     737  EnableScrollBar(hwnd, SB_CTL, ESB_DISABLE_BOTH);
     738
     739  return 0;
     740}
     741#endif
    727742
    728743/***********************************************************************
     
    11621177      return SCROLL_KeyDown(hwnd,wParam,lParam);
    11631178
     1179#ifdef __WIN32OS2__
     1180    case WM_ENABLE:
     1181      return SCROLL_Enable(hwnd, wParam);
     1182#endif
     1183
    11641184    case WM_ERASEBKGND:
    11651185      return 1;
     
    12771297            ((UINT)(info->nMax - info->nMin) >= 0x80000000))
    12781298        {
     1299            //NOTE: This does not fail in NT4 (unlike SetScrollRange)
    12791300            infoPtr->MinVal = 0;
    12801301            infoPtr->MaxVal = 0;
     
    12901311                infoPtr->MaxVal = info->nMax;
    12911312                bChangeParams = TRUE;
    1292            }
     1313            }
    12931314        }
    12941315    }
    12951316
    12961317    /* Make sure the page size is valid */
    1297 
    12981318    if (infoPtr->Page < 0) infoPtr->Page = 0;
    12991319    else if (infoPtr->Page > infoPtr->MaxVal - infoPtr->MinVal + 1 )
     
    13071327        infoPtr->CurVal = infoPtr->MaxVal - MAX( infoPtr->Page-1, 0 );
    13081328
    1309     //TRACE("    new values: page=%d pos=%d min=%d max=%d\n",
    1310     //             infoPtr->Page, infoPtr->CurVal,
    1311     //             infoPtr->MinVal, infoPtr->MaxVal );
     1329    //testestest
     1330    dprintf(("new values: page=%d pos=%d min=%d max=%d\n",
     1331                 infoPtr->Page, infoPtr->CurVal,
     1332                 infoPtr->MinVal, infoPtr->MaxVal ));
    13121333
    13131334    /* don't change the scrollbar state if SetScrollInfo
     
    14811502
    14821503    dprintf(("SetScrollRange %x %x %d %d %d", hwnd, nBar, MinVal, MaxVal, bRedraw));
     1504
     1505    //This is what NT4 does
     1506    if ((MinVal > MaxVal) ||
     1507        ((UINT)(MaxVal - MinVal) >= 0x80000000))
     1508    {
     1509        dprintf(("Invalid range"));
     1510        SetLastError(ERROR_INVALID_SCROLLBAR_RANGE);
     1511        return FALSE;
     1512    }
     1513
    14831514    info.cbSize = sizeof(info);
    14841515    info.nMin   = MinVal;
Note: See TracChangeset for help on using the changeset viewer.