enyo.DataList doesn't handle arbitrary position change

Description

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.

Environment

Windows

Activity

Show:
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.

Assignee

AT

Reporter

Ben Combee (Enyo Team)

Labels

External issue ID

None

Tango Test Run Elements

None

Old Issue Key

None

Components

Fix versions

Affects versions

Priority

None
Configure