Hi,
After spending quite a few hours trying to figure out why my
DataSet scrollbars were being drawn in a piecemeal
fashion, I’ve finally tracked it down to the hardwired repairNow: false within invalidateRectange:.
This was causing the up/down arrows invalidation being added to the damage list,
whilst the marker is being invalidated immediately. Thus the up/down arrows
would change their display only when a later damage event comes in. This looked
strange under the XP look.
After initial testing this works rather well (maybe useful
for others?), however I was wondering if this might have some nasty side
effects?
Cheers,
Stewart
PS Interestingly the scrollbars flash under 7.2, but not in
the same fashion. I haven’t been able to determine if that’s
underlying behaviour, or something I’ve done.
ScrollerButtonView>>invalidateRectangle: aRectangle
"Determine
the value of repairNow depending on whether the topComponent has
invalidation suppressed or not.
This
causes synchronous displaying of scroll bar components, rather than piecemeal
displaying
later via damage events.
See
also shouldBeActive, upButtonFor:
aScrollWrapper, setVisibility:
aBoolean,
displayMarkerOn: aGraphicsContext, and downcastEvent:
#visibility with: self shouldBeActive from:.
03/06/06 SIM.
Invalidate
the Rectangle aRectangle.
Propagate
a damage rectangle up the containment hierarchy.
This
will result in a displayOn: aGraphicsContext
being sent to the receiver."
self baseSystemChange.
self
invalidateRectangle: aRectangle
repairNow: "false" self topComponent sensor invalidationSuppressed
not