< prev index next >
src/java.desktop/share/classes/java/awt/Window.java
Print this page
*** 50,60 ****
import java.util.concurrent.atomic.AtomicBoolean;
import javax.accessibility.*;
import sun.awt.AWTAccessor;
import sun.awt.AWTPermissions;
import sun.awt.AppContext;
- import sun.awt.CausedFocusEvent;
import sun.awt.DebugSettings;
import sun.awt.SunToolkit;
import sun.awt.util.IdentityArrayList;
import sun.java2d.pipe.Region;
import sun.security.action.GetPropertyAction;
--- 50,59 ----
*** 220,230 ****
* before it lost focus.
*/
private transient Component temporaryLostComponent;
static boolean systemSyncLWRequests = false;
! boolean syncLWRequests = false;
transient boolean beforeFirstShow = true;
private transient boolean disposing = false;
transient WindowDisposerRecord disposerRecord = null;
static final int OPENED = 0x01;
--- 219,229 ----
* before it lost focus.
*/
private transient Component temporaryLostComponent;
static boolean systemSyncLWRequests = false;
! volatile boolean syncLWRequests = false;
transient boolean beforeFirstShow = true;
private transient boolean disposing = false;
transient WindowDisposerRecord disposerRecord = null;
static final int OPENED = 0x01;
*** 4127,4136 ****
--- 4126,4161 ----
// a window doesn't need to be updated in the Z-order.
@Override
void updateZOrder() {}
+ /**
+ * Enables the synchronous focus requests on lightweight components in this window
+ * if {@code true} is specified and the system property
+ * {@code awt.enableSyncLWFocus} is set. Reverts to the asynchronous focus requests
+ * if the specified value is {@code false}.
+ * By default, all windows use asynchronous lightweight focus requests.
+ *
+ * The synchronous lightweight focus requests should only enabled
+ * if this window will never transfer focus to other heavyweight containers.
+ * In this case the observable focus behavior is the same as with
+ * asynchronous requests.
+ *
+ * If the window does transfer focus to other
+ * heavyweight containers and the synchronous lightweight focus requests
+ * are enabled to it then further focus behavior is unspecified.
+ *
+ * @param enable whether to enable the lightweight focus requests
+ *
+ * @see java.awt.Component#isLightweight
+ * @since 1.9
+ */
+ public void setSyncLWFocus(boolean enable) {
+ syncLWRequests = enable && java.security.AccessController.doPrivileged(
+ new GetPropertyAction("awt.enableSyncLWFocus")) != null;
+ }
+
} // class Window
/**
* This class is no longer used, but is maintained for Serialization
< prev index next >