From 135ede588038b677f68d63868f814d15d676e9f4 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Fri, 23 Jul 2010 09:11:52 +0000 Subject: [PATCH] Rest of the work on issue#528, add default macosx bindings(Ctrl+w and Cmd+w). Fix a font issue for proxy config reported by Lubomir Marinov. --- .../communicator/impl/gui/main/MainFrame.java | 7 ++++- .../impl/gui/main/chat/ChatWindow.java | 10 ------- .../chatroomslist/ChatRoomTableDialog.java | 3 ++ .../plugin/branding/AboutWindow.java | 29 +++++++++++++++++++ .../GlobalProxyConfigForm.java | 6 +++- .../util/swing/SIPCommDialog.java | 13 ++++++++- .../communicator/util/swing/SIPCommFrame.java | 13 +++++++++ 7 files changed, 68 insertions(+), 13 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java index a30762c19..ac7ced0a9 100644 --- a/src/net/java/sip/communicator/impl/gui/main/MainFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/MainFrame.java @@ -13,7 +13,6 @@ import java.util.List; import javax.swing.*; -import javax.swing.event.*; import javax.swing.tree.*; import net.java.sip.communicator.impl.gui.*; @@ -228,6 +227,12 @@ private void init() this.addKeybindingAction("main-rename", new RenameAction()); + // Remove the default escape key mapping as its a special + // one for the main frame and the contactlist + getRootPane().getInputMap( + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) + .remove(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)); + TransparentPanel northPanel = new TransparentPanel(new BorderLayout(0, 0)); 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 2d7f01f3c..96a4659db 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 @@ -165,16 +165,6 @@ public void stateChanged(ChangeEvent evt) this.addKeybindingAction( "chat-close", new CloseAction()); - // simple fix adding meta+w on macosx - if (OSUtils.IS_MAC) - { - this.getRootPane().getInputMap( - JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put( - KeyStroke.getKeyStroke( - KeyEvent.VK_W, InputEvent.META_DOWN_MASK), - "chat-close"); - } - this.addWindowListener(new ChatWindowAdapter()); int width = GuiActivator.getResources() diff --git a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java index f2ad8901d..68113b5b8 100644 --- a/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/chatroomslist/ChatRoomTableDialog.java @@ -447,6 +447,9 @@ public Component getListCellRendererComponent(JList list, Object value, { ChatRoomProviderWrapper provider = (ChatRoomProviderWrapper)value; + if(provider == null) + return this; + if (isSelected) { setBackground(list.getSelectionBackground()); diff --git a/src/net/java/sip/communicator/plugin/branding/AboutWindow.java b/src/net/java/sip/communicator/plugin/branding/AboutWindow.java index 455422267..31031d027 100644 --- a/src/net/java/sip/communicator/plugin/branding/AboutWindow.java +++ b/src/net/java/sip/communicator/plugin/branding/AboutWindow.java @@ -199,6 +199,23 @@ public AboutWindow(Frame owner) this.setResizable(false); setLocationRelativeTo(getParent()); + + this.getRootPane().getActionMap().put("close", new CloseAction()); + + InputMap imap = this.getRootPane().getInputMap( + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + + imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close"); + + if(OSUtils.IS_MAC) + { + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.META_DOWN_MASK), + "close"); + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK), + "close"); + } } /** @@ -326,4 +343,16 @@ public Object getSource() * Implementation of {@link ExportedWindow#setParams(Object[])}. */ public void setParams(Object[] windowParams) {} + + /** + * The action invoked when user presses Escape key. + */ + private class CloseAction extends UIAction + { + public void actionPerformed(ActionEvent e) + { + setVisible(false); + dispose(); + } + } } diff --git a/src/net/java/sip/communicator/plugin/globalproxyconfig/GlobalProxyConfigForm.java b/src/net/java/sip/communicator/plugin/globalproxyconfig/GlobalProxyConfigForm.java index 4473913e4..c14a22386 100644 --- a/src/net/java/sip/communicator/plugin/globalproxyconfig/GlobalProxyConfigForm.java +++ b/src/net/java/sip/communicator/plugin/globalproxyconfig/GlobalProxyConfigForm.java @@ -151,6 +151,10 @@ private void init() table.setContentType("text/html"); table.setEditable(false); table.setOpaque(false); + + table.putClientProperty( + JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE); + table.setText(Resources.getString( "plugin.globalproxy.PROTOCOL_SUPPORT")); centerPanel.add( @@ -159,7 +163,7 @@ private void init() add(centerPanel, BorderLayout.NORTH); } - + /** * Loading the values stored onto configuration form */ diff --git a/src/net/java/sip/communicator/util/swing/SIPCommDialog.java b/src/net/java/sip/communicator/util/swing/SIPCommDialog.java index 771e692c8..0eb584c55 100644 --- a/src/net/java/sip/communicator/util/swing/SIPCommDialog.java +++ b/src/net/java/sip/communicator/util/swing/SIPCommDialog.java @@ -144,8 +144,19 @@ private void initInputMap() JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close"); + + // put the defaults for macosx + if(OSUtils.IS_MAC) + { + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.META_DOWN_MASK), + "close"); + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK), + "close"); + } } - + /** * The action invoked when user presses Escape key. */ diff --git a/src/net/java/sip/communicator/util/swing/SIPCommFrame.java b/src/net/java/sip/communicator/util/swing/SIPCommFrame.java index fc8949b51..31c4e6c38 100644 --- a/src/net/java/sip/communicator/util/swing/SIPCommFrame.java +++ b/src/net/java/sip/communicator/util/swing/SIPCommFrame.java @@ -84,6 +84,19 @@ public SIPCommFrame() imap = rootPane.getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + + imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "close"); + + // put the defaults for macosx + if(OSUtils.IS_MAC) + { + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.META_DOWN_MASK), + "close"); + imap.put( + KeyStroke.getKeyStroke(KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK), + "close"); + } } /**