< prev index next >

src/java.desktop/share/classes/java/awt/DefaultKeyboardFocusManager.java

Print this page

        

*** 178,192 **** return doRestoreFocus(toFocus, null, clearOnFailure); } private boolean doRestoreFocus(Component toFocus, Component vetoedComponent, boolean clearOnFailure) { if (toFocus != vetoedComponent && toFocus.isShowing() && toFocus.canBeFocusOwner() && ! toFocus.requestFocus(false, FocusEvent.Cause.ROLLBACK)) { return true; } else { Component nextFocus = toFocus.getNextFocusCandidate(); if (nextFocus != null && nextFocus != vetoedComponent && nextFocus.requestFocusInWindow(FocusEvent.Cause.ROLLBACK)) { return true; --- 178,197 ---- return doRestoreFocus(toFocus, null, clearOnFailure); } private boolean doRestoreFocus(Component toFocus, Component vetoedComponent, boolean clearOnFailure) { + boolean success = true; if (toFocus != vetoedComponent && toFocus.isShowing() && toFocus.canBeFocusOwner() && ! (success = toFocus.requestFocus(false, FocusEvent.Cause.ROLLBACK))) { return true; } else { + if (!success && getGlobalFocusedWindow() != SunToolkit.getContainingWindow(toFocus)) { + restoreFocusTo = toFocus; + return true; + } Component nextFocus = toFocus.getNextFocusCandidate(); if (nextFocus != null && nextFocus != vetoedComponent && nextFocus.requestFocusInWindow(FocusEvent.Cause.ROLLBACK)) { return true;
< prev index next >