src/share/classes/sun/awt/SunToolkit.java

Print this page

        

*** 456,507 **** public static void setLWRequestStatus(Window changed,boolean status){ AWTAccessor.getWindowAccessor().setLWRequestStatus(changed, status); }; ! public static void checkAndSetPolicy(Container cont, boolean isSwingCont) ! { ! FocusTraversalPolicy defaultPolicy = KeyboardFocusManager ! .getCurrentKeyboardFocusManager().getDefaultFocusTraversalPolicy(); ! ! String toolkitName = Toolkit.getDefaultToolkit().getClass().getName(); ! // if this is not XAWT then use default policy ! // because Swing change it ! if (!"sun.awt.X11.XToolkit".equals(toolkitName)) { ! cont.setFocusTraversalPolicy(defaultPolicy); ! return; ! } - String policyName = defaultPolicy.getClass().getName(); - - if (DefaultFocusTraversalPolicy.class != defaultPolicy.getClass()) { - // Policy was changed - // Check if it is awt policy or swing policy - // If it is Swing policy we shouldn't use it in AWT frames - // If it is AWT policy we shouldn't use it in Swing frames - // Otherwise we should use this policy - if (policyName.startsWith("java.awt.")) { - // AWT - if (isSwingCont) { - // Can't use AWT policy in Swing windows - should use Swing's one. - defaultPolicy = createLayoutPolicy(); - } else { - // New awt policy. - } - } else if (policyName.startsWith("javax.swing.")) { - if (isSwingCont) { - // New Swing's policy - } else { - defaultPolicy = new DefaultFocusTraversalPolicy(); - } - } - } else { - // Policy is default, use different default policy for swing - if (isSwingCont) { - defaultPolicy = createLayoutPolicy(); - } - } cont.setFocusTraversalPolicy(defaultPolicy); } private static FocusTraversalPolicy createLayoutPolicy() { FocusTraversalPolicy policy = null; --- 456,470 ---- public static void setLWRequestStatus(Window changed,boolean status){ AWTAccessor.getWindowAccessor().setLWRequestStatus(changed, status); }; ! public static void checkAndSetPolicy(Container cont) { ! FocusTraversalPolicy defaultPolicy = KeyboardFocusManager. ! getCurrentKeyboardFocusManager(). ! getDefaultFocusTraversalPolicy(); cont.setFocusTraversalPolicy(defaultPolicy); } private static FocusTraversalPolicy createLayoutPolicy() { FocusTraversalPolicy policy = null;