diff --git a/src/net/java/sip/communicator/util/swing/AuthenticationWindow.java b/src/net/java/sip/communicator/util/swing/AuthenticationWindow.java index e7a37b860..539331cc5 100644 --- a/src/net/java/sip/communicator/util/swing/AuthenticationWindow.java +++ b/src/net/java/sip/communicator/util/swing/AuthenticationWindow.java @@ -542,22 +542,35 @@ protected void close(boolean isEscaped) * window. */ @Override - public void setVisible(boolean isVisible) + public void setVisible(final boolean isVisible) { this.setName("AUTHENTICATION"); if(getOwner() != null) setModal(true); - super.setVisible(isVisible); if(isVisible) { - if (uinValue instanceof JTextField && - "".equals(((JTextField) uinValue).getText())) - uinValue.requestFocus(); - else - passwdField.requestFocus(); + addWindowFocusListener(new WindowAdapter() { + public void windowGainedFocus(WindowEvent e) + { + removeWindowFocusListener(this); + if (uinValue instanceof JTextField && + "".equals(((JTextField) uinValue).getText())) + { + uinValue.requestFocusInWindow(); + } + else + passwdField.requestFocusInWindow(); + } + }); + } + + super.setVisible(isVisible); + + if(isVisible) + { if(getOwner() != null) return;