if (oldSortedHeader != null) {
oldSortedHeader.resizeCaptionContainer();
}
+ if (sortColumn != null && !sortColumn.equals("null")
+ && oldSortColumn != sortColumn) {
+ // Sorting has changed, focus the first row
+ setRowFocus(scrollBody.getRowByRowIndex(firstRowInViewPort));
+ }
rendering = false;
headerChangedDuringUpdate = false;
-
}
protected VScrollTableBody createScrollBody() {
// ensure no clipping initially (problem on column additions)
DOM.setStyleAttribute(captionContainer, "overflow", "visible");
- DOM.sinkEvents(captionContainer, Event.MOUSEEVENTS
- | Event.KEYEVENTS);
+ DOM.sinkEvents(captionContainer, Event.MOUSEEVENTS);
DOM.appendChild(td, captionContainer);
- DOM.sinkEvents(td, Event.MOUSEEVENTS | Event.KEYEVENTS);
+ DOM.sinkEvents(td, Event.MOUSEEVENTS);
setElement(td);
- getElement().setTabIndex(-1);
-
setAlign(ALIGN_LEFT);
}
updateFloatingCopysPosition(DOM.eventGetClientX(event), -1);
}
break;
- case Event.ONKEYDOWN:
- focusFirstRow();
- break;
default:
break;
}
}
- private void focusFirstRow() {
- setRowFocus(scrollBody.getRowByRowIndex(firstRowInViewPort));
- focusedRow.toggleSelection();
- }
-
private void onResizeEvent(Event event) {
switch (DOM.eventGetType(event)) {
case Event.ONMOUSEDOWN:
// Focus a row if no row is in focus
if (focusedRow == null) {
- setRowFocus((VScrollTableRow) scrollBody.iterator().next());
+ setRowFocus(scrollBody.getRowByRowIndex(firstRowInViewPort));
} else {
setRowFocus(focusedRow);
}