diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
index ca1d81acaf9dccef32666cf890538bfa9e430863..af2b3556f6599f2f19bc42373f695584de1b8caf 100644
--- a/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
+++ b/dockingvl/src/main/java/fr/soleil/docking/vl/view/VlDockView.java
@@ -111,27 +111,27 @@ public class VlDockView implements IView, Dockable, DockingActionListener, Focus
     public void select() {
         setVisible(true);
         // TODO Doesn't work !!!!!!
-        focus(component);
+        focus(component, true);
         focusGained(new FocusEvent(component, FocusEvent.FOCUS_GAINED));
     }
 
-    protected static boolean focus(Component comp) {
+    protected static boolean focus(Component comp, boolean forceFocus) {
         boolean focused = false;
         if (comp != null) {
-            if (comp.isVisible() && comp.isShowing()) {
+            if (forceFocus || (comp.isVisible() && comp.isShowing())) {
                 if (comp.isFocusable()) {
                     comp.requestFocus();
+                    comp.requestFocusInWindow();
                     focused = true;
                 } else if (comp instanceof Container) {
                     Container container = (Container) comp;
                     for (Component child : container.getComponents()) {
-                        if (focus(child)) {
+                        if (focus(child, false)) {
+                            focused = true;
                             break;
                         }
                     }
                 }
-            } else {
-                comp.setVisible(true);
             }
         }
         return focused;