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;