]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6788 - Fixed a focus issue in Firefox and removed unnecessary key handling code...
authorJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Thu, 14 Apr 2011 07:46:03 +0000 (07:46 +0000)
committerJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Thu, 14 Apr 2011 07:46:03 +0000 (07:46 +0000)
svn changeset:18279/svn branch:6.5

src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java

index 7b9bd4e2ee7c172d6a576314bd9e26c74f6355a5..20915391b050221e6066083f95321e686419e71f 100644 (file)
@@ -1069,10 +1069,14 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
         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() {
@@ -1986,17 +1990,14 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
             // 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);
         }
 
@@ -2244,19 +2245,11 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                     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:
@@ -5596,7 +5589,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
 
             // Focus a row if no row is in focus
             if (focusedRow == null) {
-                setRowFocus((VScrollTableRow) scrollBody.iterator().next());
+                setRowFocus(scrollBody.getRowByRowIndex(firstRowInViewPort));
             } else {
                 setRowFocus(focusedRow);
             }