]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes focusing issues with Table and IE
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 20 May 2010 12:01:41 +0000 (12:01 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 20 May 2010 12:01:41 +0000 (12:01 +0000)
svn changeset:13272/svn branch:6.4

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

index e6c53baccf3ddb8338d974b7743f69173c451c58..967e60d4660187a76f2e158f604a30183629f11e 100644 (file)
@@ -14,6 +14,7 @@ import com.google.gwt.event.dom.client.KeyPressEvent;
 import com.google.gwt.event.dom.client.KeyPressHandler;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.impl.FocusImpl;
 
 /**
  * Compared to FocusPanel in GWT this panel does not support eg. accesskeys, but
@@ -45,4 +46,11 @@ public class SimpleFocusablePanel extends SimplePanel implements
         return addDomHandler(handler, KeyPressEvent.getType());
     }
 
+    public void setFocus(boolean focus) {
+        if (focus) {
+            FocusImpl.getFocusImplForPanel().focus(getElement());
+        } else {
+            FocusImpl.getFocusImplForPanel().blur(getElement());
+        }
+    }
 }
index d691e71294b1d0032aa4d1c906de8a2b7d1d97e3..c1e0f1a2c6f4bcaa6f1371395d67aaadc497b0a4 100644 (file)
@@ -1732,7 +1732,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                 } else {
                     handleCaptionEvent(event);
                     if (DOM.eventGetType(event) == Event.ONMOUSEUP) {
-                        onFocus(null);
+                        scrollBodyPanel.setFocus(true);
                     }
                 }
             }
@@ -2603,7 +2603,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                 handleCaptionEvent(event);
 
                 if (DOM.eventGetType(event) == Event.ONMOUSEUP) {
-                    onFocus(null);
+                    scrollBodyPanel.setFocus(true);
                 }
             }
         }
@@ -3660,7 +3660,7 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler,
                         case Event.ONMOUSEUP:
                             mDown = false;
                             handleClickEvent(event, targetTdOrTr);
-                            onFocus(null);
+                            scrollBodyPanel.setFocus(true);
                             if (event.getButton() == Event.BUTTON_LEFT
                                     && selectMode > Table.SELECT_MODE_NONE) {
 
index e728ddae541e6ffc2fe82e101a317879f830a05c..a8db7c6dd53a5df01e7fc446f7146ee05f506904 100644 (file)
@@ -31,7 +31,6 @@ import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.gwt.user.client.ui.UIObject;
 import com.google.gwt.user.client.ui.Widget;
-import com.google.gwt.user.client.ui.impl.FocusImpl;
 import com.vaadin.terminal.gwt.client.ApplicationConnection;
 import com.vaadin.terminal.gwt.client.BrowserInfo;
 import com.vaadin.terminal.gwt.client.MouseEventDetails;
@@ -172,14 +171,6 @@ public class VTree extends SimpleFocusablePanel implements Paintable,
         }
     }
 
-    private void setFocus(boolean focus) {
-        if (focus) {
-            FocusImpl.getFocusImplForPanel().focus(getElement());
-        } else {
-            FocusImpl.getFocusImplForPanel().blur(getElement());
-        }
-    }
-
     private void updateActionMap(UIDL c) {
         final Iterator it = c.getChildIterator();
         while (it.hasNext()) {