enyo.DataList doesn't handle arbitrary position change


Seen on pilot-5

Start the DataListSample.html page on a Windows machine
Scroll to the end of the list
Tap in the scroll bar
Hit PageUp to verify that keyboard control works
Hit Home to jump to the top of the list

Expected: you see the first set of items
Actual: you get a blank area

The up/down methods of DataList only handle moving a single page above/below the other page. When you move a long distance, you need to reposition both pages.




Ben Combee (Enyo Team)
August 23, 2013, 4:38 AM

If I load DataListSample on Windows Chrome, set a breakpoint in DataList.didScroll, then hit Ctrl-End to jump to the end of the list, I see this:

didScroll is hit. The code starts by calling this.getDirection() which returns "down". This calls throtlleJob for the "down" method.

After a delay, "down" is called. At this time, .top is 0, .height is 2950, and getScrollTop returns 28507. Since top _ height is less than scrollTop, the this.positionPageAfter($p) call is made.

After that call, using the DOM inspector I see page 1 positioned at top: 5900px and page2 positioned at 2950px. However, since the display is down at 28507, neither is visible.

Ben Combee (Enyo Team)
August 23, 2013, 4:42 AM

I can reproduce this on my MacBook by loading the sample, then hitting Fn+Control+Right Arrow

Cole Davis (Enyo Team)
August 23, 2013, 2:21 PM

Thanks for finding this Ben! With that info I should be able to resolve it. Awesome.

Cole Davis (Enyo Team)
September 18, 2013, 11:09 PM
Ben Combee (Enyo Team)
February 26, 2014, 2:41 AM

still able to reproduce with current DataList sample on both Mac and PC. Go to sample in desktop, hit End key or Fn+Down, you get blank screen.




Ben Combee (Enyo Team)


External issue ID


Tango Test Run Elements


Old Issue Key



Fix versions

Affects versions