| Summary: | [Combo] Selected item not visible in the list if it was scrolled before | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Ivan Furnadjiev <ivan> |
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | tbuschto |
| Version: | 1.4 | ||
| Target Milestone: | 1.4 M7 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
Ivan Furnadjiev
The scrollIntoView call is actually working, its more an issue of the order in which it is called: - list.setDisplay( true ) is called in Combo.js - flush - in Combo the lists appear event causes the scrollIntoView call - scrollIntoView works like expected, but the resulting dom-scroll-event is not fired until the javascript thread is free again. - Next in Scrollable#_onClientAppear "_syncClientArea" is called, which sets the clientArea (the actual list) back to the (unchanged) scroll-position stored in the ScrollBar. - After all that the dom-scroll-event is finally fired, triggering Scrollable#_onscroll, which then in turn calls "_syncClientArea", trying to store the new scroll position in the scrollbar, which should have happend before it got reset. So basically, the problem is a combination of the fact that dom-events dont get fired while javascript is processed and that Combo gets the appear event before the list itself does. Correction: the second "_syncClientArea" should actually be "_syncScrollBars" Fixed in CVS HEAD by calling "_syncScrollBars" explicitly after "scrollIntoView". |