Undid all the scrolling muckery. Going to need to figure this out for real...
This commit is contained in:
parent
c4a2bdc2a6
commit
0437ecd403
|
@ -152,7 +152,7 @@ static void vscrollto(struct table *t, intptr_t newpos)
|
||||||
|
|
||||||
// negative because ScrollWindowEx() is "backwards"
|
// negative because ScrollWindowEx() is "backwards"
|
||||||
if (ScrollWindowEx(t->hwnd, 0, (-(newpos - t->firstVisible)) * rowHeight(t),
|
if (ScrollWindowEx(t->hwnd, 0, (-(newpos - t->firstVisible)) * rowHeight(t),
|
||||||
&scrollArea, &scrollArea, NULL, NULL,
|
NULL, NULL, NULL, NULL,
|
||||||
SW_ERASE | SW_INVALIDATE) == ERROR)
|
SW_ERASE | SW_INVALIDATE) == ERROR)
|
||||||
abort();
|
abort();
|
||||||
t->firstVisible = newpos;
|
t->firstVisible = newpos;
|
||||||
|
@ -290,12 +290,10 @@ static void drawItems(struct table *t, HDC dc, RECT cliprect)
|
||||||
abort();
|
abort();
|
||||||
if (GetWindowOrgEx(dc, &prevOrigin) == 0)
|
if (GetWindowOrgEx(dc, &prevOrigin) == 0)
|
||||||
abort();
|
abort();
|
||||||
// notice this calculation: we discount t->headerHeight so that (0,0) shows up at (0, t->headerHeight)
|
if (SetWindowOrgEx(dc, prevOrigin.x, prevOrigin.y + (t->firstVisible * tm.tmHeight), NULL) == 0)
|
||||||
if (SetWindowOrgEx(dc, prevOrigin.x, prevOrigin.y + (t->firstVisible * tm.tmHeight - t->headerHeight), NULL) == 0)
|
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
// see http://blogs.msdn.com/b/oldnewthing/archive/2003/07/29/54591.aspx and http://blogs.msdn.com/b/oldnewthing/archive/2003/07/30/54600.aspx
|
// see http://blogs.msdn.com/b/oldnewthing/archive/2003/07/29/54591.aspx and http://blogs.msdn.com/b/oldnewthing/archive/2003/07/30/54600.aspx
|
||||||
// this is also why we kept cliprect unaware of t->headerHeight above
|
|
||||||
first = cliprect.top / tm.tmHeight;
|
first = cliprect.top / tm.tmHeight;
|
||||||
if (first < 0)
|
if (first < 0)
|
||||||
first = 0;
|
first = 0;
|
||||||
|
|
Loading…
Reference in New Issue