enyojs/enyo — pull request #931 by graynorton (2014-11-15 02:08:57+00:00)
Title: ENYO-473, 476, 477: More Scroller / DataList issues

This pull request addresses a number of issues:

* ENYO-473: With TranslateScrollStrategy, it was sometimes possible
to scroll to an invalid position (outside the actual boundaries
of the scrollable content) if the size of the content happened to
change during (perhaps as a result of) the scrolling action. This
situation could easily occur when using DataList, since DataList
constantly updates the size of the "buffer" it uses to represent
the list's full size. When this happened, the contents of the
scroller would disappear from view. The easiest way to see this
was to use DataListScrollTestbed, choose the "Translate
(Optimized)" option, and tap "Scroll to Bottom" (as described in
ENYO-473). Although harder to reproduce, you could also make this
happen on a Mac with Magic Trackpad by choosing either of the two
Translate options and rapidly scrolling up and down by scrolling
with the trackpad.

* ENYO-476: DataList was not properly refreshing when resized. This
was because cached page-size metrics were not being invalidated
after a resize.

* ENYO-477: In TouchScrollStrategy and subkinds, the scroll thumbs
would often disappear unexpectedly while scrolling was still
in progress. This is a regression that occurred between 2.4.0 and
2.5.0, most likely due to changes in when onScrollStop events
fire. To ensure that this won't happen, we explicitly show the
thumbs (thus canceling any scheduled "hide" operations) in our
onScroll handler, not onScrollStart. Because we were already
adjusting the thumbs' position on every event and Thumb guards
against redundant DOM changes in its setShowing() method, there
seems to be little to no performance penalty for this change.

Enyo-DCO-1.1-Signed-Off-By: Gray Norton (gray.norton@lge.com)