< 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 >