--- old/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2014-09-25 19:47:24.319242288 +0400 +++ new/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2014-09-25 19:47:24.183243998 +0400 @@ -676,6 +676,13 @@ @Override // PlatformWindow public void toFront() { final long nsWindowPtr = getNSWindowPtr(); + Container parent = getPeer().getTarget().getParent(); + LWCToolkit lwcToolkit = (LWCToolkit) Toolkit.getDefaultToolkit(); + if(DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() + instanceof CEmbeddedFrame + && !lwcToolkit.isApplicationActive()) { + lwcToolkit.activateApplication(); + } updateFocusabilityForAutoRequestFocus(false); nativePushNSWindowToFront(nsWindowPtr); updateFocusabilityForAutoRequestFocus(true); --- old/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java 2014-09-25 19:47:24.855235550 +0400 +++ new/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java 2014-09-25 19:47:24.731237109 +0400 @@ -811,6 +811,11 @@ */ public static native boolean isEmbedded(); + /* + * Activates application ignoring other apps. + */ + public native void activateApplication(); + /************************ * Native methods section ************************/ --- old/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m 2014-09-25 19:47:25.359229214 +0400 +++ new/src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m 2014-09-25 19:47:25.235230773 +0400 @@ -606,6 +606,23 @@ return active; } +/* + * Class: sun_lwawt_macosx_LWCToolkit + * Method: activateApplication + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_sun_lwawt_macosx_LWCToolkit_activateApplication +(JNIEnv *env, jclass clazz) +{ + JNF_COCOA_ENTER(env); + [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ + if(![NSApp isActive]){ + [NSApp activateIgnoringOtherApps:YES]; + } + }]; + JNF_COCOA_EXIT(env); +} + /* * Class: sun_awt_SunToolkit