diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java index 75fc85147..da9ce233e 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindow.java @@ -1141,14 +1141,27 @@ public void fileDropped(File file, Point point) */ public void openChat(ChatPanel chatPanel, boolean setSelected) { + boolean isWindowVisible = isVisible(); + if(getExtendedState() != JFrame.ICONIFIED) { if(ConfigurationManager.isAutoPopupNewMessage() || setSelected) + { + if (!isVisible()) + setVisible(true); + toFront(); + } + else + { + setFocusableWindowState(false); + setVisible(true); + setFocusableWindowState(true); + } } else { - if(setSelected) + if (setSelected) { setExtendedState(JFrame.NORMAL); toFront(); @@ -1160,7 +1173,7 @@ public void openChat(ChatPanel chatPanel, boolean setSelected) setTitle("*" + chatWindowTitle); } - if(setSelected) + if (setSelected || !isWindowVisible) { setCurrentChat(chatPanel); } diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java index fd5610e37..6b552c0a2 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatWindowManager.java @@ -79,15 +79,7 @@ public void run() if(!chatPanel.isShown()) chatContainer.addChat(chatPanel); - if(chatContainer.getFrame().isVisible()) - { - chatContainer.openChat(chatPanel, setSelected); - } - else - { - chatContainer.getFrame().setVisible(true); - chatContainer.setCurrentChat(chatPanel); - } + chatContainer.openChat(chatPanel, setSelected); } }