Java Code Examples for java.awt.peer.KeyboardFocusManagerPeer

The following examples show how to use java.awt.peer.KeyboardFocusManagerPeer. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may want to check out the right sidebar which shows the related API usage.
Example 1
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 2
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 3
Source Project: jdk8u60   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 4
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 5
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 6
Source Project: openjdk-jdk9   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 7
Source Project: jdk8u-jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 8
Source Project: hottub   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 9
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 10
Source Project: openjdk-8   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 11
Source Project: jdk8u_jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 12
Source Project: jdk8u-jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 13
/**
 * Handler for FocusEvents.
 */
void handleJavaFocusEvent(final FocusEvent e) {
    // Note that the peer receives all the FocusEvents from
    // its lightweight children as well
    KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
    kfmPeer.setCurrentFocusOwner(e.getID() == FocusEvent.FOCUS_GAINED ? getTarget() : null);
}
 
Example 14
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 15
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 16
Source Project: jdk8u60   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 17
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 18
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 19
Source Project: Bytecoder   Source File: HeadlessToolkit.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() {
    // See 6833019.
    return kfmPeer;
}
 
Example 20
Source Project: Bytecoder   Source File: SunToolkit.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public abstract KeyboardFocusManagerPeer getKeyboardFocusManagerPeer()
    throws HeadlessException;
 
Example 21
Source Project: openjdk-jdk9   Source File: HeadlessToolkit.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() {
    // See 6833019.
    return kfmPeer;
}
 
Example 22
Source Project: openjdk-jdk9   Source File: SunToolkit.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public abstract KeyboardFocusManagerPeer getKeyboardFocusManagerPeer()
    throws HeadlessException;
 
Example 23
Source Project: openjdk-jdk9   Source File: HToolkit.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() {
    // See 6833019.
    return kfmPeer;
}
 
Example 24
Source Project: openjdk-jdk9   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            FocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    AWTAccessor.getComponentAccessor()
                               .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 25
Source Project: jdk8u-jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 26
Source Project: hottub   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 27
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 28
Source Project: openjdk-8   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 29
Source Project: jdk8u_jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            return parentPeer.requestWindowFocus(cause, () -> {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, parentWindow.isFocused() = " +
                            parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
            }, () -> {
                KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();

                Component focusOwner = kfmPeer.getCurrentFocusOwner();
                LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);
            });

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}
 
Example 30
Source Project: jdk8u-jdk   Source File: LWComponentPeer.java    License: GNU General Public License v2.0 4 votes vote down vote up
@Override
public boolean requestFocus(Component lightweightChild, boolean temporary,
                            boolean focusedWindowChangeAllowed, long time,
                            CausedFocusEvent.Cause cause)
{
    if (focusLog.isLoggable(PlatformLogger.Level.FINEST)) {
        focusLog.finest("lightweightChild=" + lightweightChild + ", temporary=" + temporary +
                        ", focusedWindowChangeAllowed=" + focusedWindowChangeAllowed +
                        ", time= " + time + ", cause=" + cause);
    }
    if (LWKeyboardFocusManagerPeer.processSynchronousLightweightTransfer(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time)) {
        return true;
    }

    int result = LWKeyboardFocusManagerPeer.shouldNativelyFocusHeavyweight(
            getTarget(), lightweightChild, temporary,
            focusedWindowChangeAllowed, time, cause);
    switch (result) {
        case LWKeyboardFocusManagerPeer.SNFH_FAILURE:
            return false;
        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
            Window parentWindow = SunToolkit.getContainingWindow(getTarget());
            if (parentWindow == null) {
                focusLog.fine("request rejected, parentWindow is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }
            final LWWindowPeer parentPeer =
                    (LWWindowPeer) AWTAccessor.getComponentAccessor()
                                              .getPeer(parentWindow);
            if (parentPeer == null) {
                focusLog.fine("request rejected, parentPeer is null");
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            // A fix for 7145768. Ensure the parent window is currently natively focused.
            // The more evident place to perform this check is in KFM.shouldNativelyFocusHeavyweight,
            // however that is the shared code and this particular problem's reproducibility has
            // platform specifics. So, it was decided to narrow down the fix to lwawt (OSX) in
            // current release. TODO: consider fixing it in the shared code.
            if (!focusedWindowChangeAllowed) {
                LWWindowPeer decoratedPeer = parentPeer.isSimpleWindow() ?
                    LWWindowPeer.getOwnerFrameDialog(parentPeer) : parentPeer;

                if (decoratedPeer == null || !decoratedPeer.getPlatformWindow().isActive()) {
                    if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                        focusLog.fine("request rejected, focusedWindowChangeAllowed==false, " +
                                      "decoratedPeer is inactive: " + decoratedPeer);
                    }
                    LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                    return false;
                }
            }

            boolean res = parentPeer.requestWindowFocus(cause);
            // If parent window can be made focused and has been made focused (synchronously)
            // then we can proceed with children, otherwise we retreat
            if (!res || !parentWindow.isFocused()) {
                if (focusLog.isLoggable(PlatformLogger.Level.FINE)) {
                    focusLog.fine("request rejected, res= " + res + ", parentWindow.isFocused()=" +
                                  parentWindow.isFocused());
                }
                LWKeyboardFocusManagerPeer.removeLastFocusRequest(getTarget());
                return false;
            }

            KeyboardFocusManagerPeer kfmPeer = LWKeyboardFocusManagerPeer.getInstance();
            Component focusOwner = kfmPeer.getCurrentFocusOwner();
            return LWKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
                    getTarget(), temporary,
                    focusedWindowChangeAllowed,
                    time, cause, focusOwner);

        case LWKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
            return true;
    }

    return false;
}