Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!ncar!unmvax!uokmax!occrsh!att!cbnewsk!ech From: ech@cbnewsk.att.com (ned.horvath) Newsgroups: comp.sys.mac.programmer Subject: Re: cdevs and the List Manager Message-ID: <1990Jun30.030908.6972@cbnewsk.att.com> Date: 30 Jun 90 03:09:08 GMT References: <13580@unix.SRI.COM> Organization: AT&T Bell Laboratories Lines: 22 From article <13580@unix.SRI.COM>, by mxmora@unix.SRI.COM (Matt Mora): > ...The whole idea of > the update routine is to only draw what really needs to be updated. Not to > invalidate the whole mess and redraw it. > > Does anybody know the real reason why the listmanager sometimes doesn't > update correctly? To add a bit more fuel to this thread: I've noticed that LUpdate does a ValidRect on the part of the window where the horizontal scrollbar is drawn -- even if the list has no horizontal scrollbar. I traced this one through the 6.0.5 PACK0 code: sure enough, it tests for the presence of a scrollbar, then (if there isn't one), branches around the draw routine to the ValidRect. If LUpdate is only being called between BeginUpdate and EndUpdate, this doesn't matter. But if LUpdate is being called after resizing the list, this is annoying. The only workaround I've found is to explicitly call InvalRect after LUpdate. I have not checked to see if the same problem exists when there is no vertical scrollbar. =Ned Horvath=