Java Code Examples for java.awt.peer.KeyboardFocusManagerPeer#getCurrentFocusOwner()

The following examples show how to use java.awt.peer.KeyboardFocusManagerPeer#getCurrentFocusOwner() . 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 check out the related API usage on the sidebar.
Example 1
Source File: LWComponentPeer.java    From dragonwell8_jdk with 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 2
Source File: LWComponentPeer.java    From TencentKona-8 with 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 3
Source File: LWComponentPeer.java    From jdk8u60 with 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 4
Source File: LWComponentPeer.java    From openjdk-jdk8u with 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 5
Source File: LWComponentPeer.java    From openjdk-jdk8u-backup with 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 6
Source File: LWComponentPeer.java    From openjdk-jdk9 with 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 7
Source File: LWComponentPeer.java    From jdk8u-jdk with 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 8
Source File: LWComponentPeer.java    From hottub with 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 9
Source File: LWComponentPeer.java    From openjdk-8-source with 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 10
Source File: LWComponentPeer.java    From openjdk-8 with 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 11
Source File: LWComponentPeer.java    From jdk8u-jdk with 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 12
Source File: LWComponentPeer.java    From jdk8u-dev-jdk with 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;
}