--- old/src/macosx/classes/sun/lwawt/LWKeyboardFocusManagerPeer.java 2012-08-17 21:11:54.000000000 +0400 +++ new/src/macosx/classes/sun/lwawt/LWKeyboardFocusManagerPeer.java 2012-08-17 21:11:53.000000000 +0400 @@ -26,85 +26,47 @@ package sun.lwawt; import java.awt.Component; -import java.awt.KeyboardFocusManager; import java.awt.Window; - -import java.util.Map; -import java.util.HashMap; - -import sun.awt.AWTAccessor; -import sun.awt.AppContext; import sun.awt.KeyboardFocusManagerPeerImpl; public class LWKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl { + private static final LWKeyboardFocusManagerPeer inst = new LWKeyboardFocusManagerPeer(); - private Object lock = new Object(); - private LWWindowPeer focusedWindow; - private LWComponentPeer focusOwner; - - private static Map instances = - new HashMap(); - - public static synchronized LWKeyboardFocusManagerPeer getInstance(AppContext ctx) { - return getInstance(AWTAccessor.getKeyboardFocusManagerAccessor(). - getCurrentKeyboardFocusManager(ctx)); - } - - public static synchronized LWKeyboardFocusManagerPeer getInstance(KeyboardFocusManager manager) { - LWKeyboardFocusManagerPeer instance = instances.get(manager); - if (instance == null) { - instance = new LWKeyboardFocusManagerPeer(manager); - instances.put(manager, instance); - } - return instance; - } + private Window focusedWindow; + private Component focusOwner; - public LWKeyboardFocusManagerPeer(KeyboardFocusManager manager) { - super(manager); + public static LWKeyboardFocusManagerPeer getInstance() { + return inst; } - @Override - public Window getCurrentFocusedWindow() { - synchronized (lock) { - return (focusedWindow != null) ? (Window)focusedWindow.getTarget() : null; - } + private LWKeyboardFocusManagerPeer() { } @Override - public Component getCurrentFocusOwner() { - synchronized (lock) { - return (focusOwner != null) ? focusOwner.getTarget() : null; + public void setCurrentFocusedWindow(Window win) { + synchronized (this) { + focusedWindow = win; } } @Override - public void setCurrentFocusOwner(Component comp) { - synchronized (lock) { - focusOwner = (comp != null) ? (LWComponentPeer)comp.getPeer() : null; - } - } - - void setFocusedWindow(LWWindowPeer peer) { - synchronized (lock) { - focusedWindow = peer; - } - } - - LWWindowPeer getFocusedWindow() { - synchronized (lock) { + public Window getCurrentFocusedWindow() { + synchronized (this) { return focusedWindow; } } - void setFocusOwner(LWComponentPeer peer) { - synchronized (lock) { - focusOwner = peer; + @Override + public Component getCurrentFocusOwner() { + synchronized (this) { + return focusOwner; } } - LWComponentPeer getFocusOwner() { - synchronized (lock) { - return focusOwner; + @Override + public void setCurrentFocusOwner(Component comp) { + synchronized (this) { + focusOwner = comp; } } }