From 20a28fa8c210a665f6a5fc4ef37ab12fe70a1ba8 Mon Sep 17 00:00:00 2001 From: Yana Stamcheva Date: Tue, 7 Aug 2012 17:12:45 +0000 Subject: [PATCH] Only take the focus if the "auto popup" property is switched on. Patch provided by Vieri on July 26. --- .../impl/gui/main/chat/ChatWindow.java | 17 +++++++++++++++-- .../impl/gui/main/chat/ChatWindowManager.java | 10 +--------- 2 files changed, 16 insertions(+), 11 deletions(-) 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); } }