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;