United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5007707 Need a way to detect alway-on-top support by platform
JDK-5007707 : Need a way to detect alway-on-top support by platform

Submit Date:
Updated Date:
Project Name:
Resolved Date:
Affected Versions:
Fixed Versions:

Related Reports

Sub Tasks

Name: dmR10075			Date: 03/04/2004

Window.setAlwaysOnTop API has been implemented so that user is unable to
tell whether his Window has actually became always-on-top or not. This
is because many platforms don't guaranteely support (even when declared)
the support for always-on-top windows. However, it is very bad practice
to have such an API without the means to get the accomplicity feedback.

I propose to add a new method, Toolkit.isAlwaysOnTopSupported, which
returns either three-state value("supported","not supported","unknown")
or two-state value("supported", "not supported" and "unknown" are



BugTraq+ Release Management Values



Name: rpR10076			Date: 03/05/2004

We'll need to look into it fro dragon.


See CCC #5007707

The approved API:
java.awt.Window(modified method):
 * Sets whether this window should always be above other windows.  If
 * there are multiple always-on-top windows, their relative order is
 * unspecified and platform dependent.
 * <p>
 * If some other window is already always-on-top then the
 * relative order between these windows is unspecified (depends on
 * platform).  No window can be brought to be over the always-on-top
 * window except maybe another always-on-top window.
 * <p>
 * All windows owned by an always-on-top window inherit this state and
 * automatically become always-on-top.  If a window ceases to be
 * always-on-top, the windows that it owns will no longer be
 * always-on-top.  When an always-on-top window is sent {@link #toBack
 * toBack}, its always-on-top state is set to <code>false</code>.
 * <p> When this method is called on a window with a value of
 * <code>true</code>, and the window is visible and the platform
 * supports always-on-top for this window, the window is immediately
 * brought forward, "sticking" it in the top-most position. If the
 * window isn`t currently visible, this method sets the always-on-top
 * state to <code>true</code> but does not bring the window forward.
 * When the window is later shown, it will be always-on-top.
 * <p> When this method is called on a window with a value of
 * <code>false</code> the always-on-top state is set to normal. The
 * window remains in the top-most position but it`s z-order can be
 * changed as for any other window.  Calling this method with a value
 * of <code>false</code> on a window that has a normal state has no
 * effect.  Setting the always-on-top state to false has no effect on
 * the relative z-order of the windows if there are no other
 * always-on-top windows.
!* <p><b>Note</b>: some platforms might not support always-on-top
!* windows.  To detect if always-on-top windows are supported by the
!* current platform, use {@link Toolkit#isAlwaysOnTopSupported()} and
!* {@link Window.isAlwaysOnTopSupported()}.  If always-on-top mode
!* isn't supported by the toolkit or for this window, calling this
!* method has no effect.
 * <p>
 * If a SecurityManager is installed, the calling thread must be
 * granted the AWTPermission "setWindowAlwaysOnTop" in
 * order to set the value of this property. If this
 * permission is not granted, this method will throw a
 * SecurityException, and the current value of the property will
 * be left unchanged.
 * @param alwaysOnTop true if the window should always be above other
 *        windows
 * @throws SecurityException if the calling thread does not have
 *         permission to set the value of always-on-top property
 * @see #isAlwaysOnTop
 * @see #toFront
 * @see #toBack
 * @see AWTPermission
 * @see #isAlwaysOnTopSupported
 * @see Toolkit#isAlwaysOnTopSupported
 * @since 1.5
public final void setAlwaysOnTop(boolean alwaysOnTop)
      throws SecurityException
java.awt.Window(new method):
* Returns whether the always-on-top mode is supported for this
* window. Some platforms may not support always-on-top windows, some
* may support only some kinds of top-level windows; for example,
* a platform may not support always-on-top modal dialogs.
* @return true if the always-on-top mode is supported by the toolkit and
*         for this window, false, if always-on-top mode is not supported
*         for this window or toolkit doesn't support always-on-top windows.
* @see #setAlwaysOnTop(boolean)
* @see Toolkit#isAlwaysOnTopSupported
public boolean isAlwaysOnTopSupported()
java.awt.Toolkit(new method):
* Returns whether the always-on-top mode is supported by this toolkit.
* To detect whether the always-on-top mode is supported for a
* particular Window, use {@link Window#isAlwaysOnTopSupported}.
* @return true if current toolkit supports the always-on-top mode,
*         otherwise returns false
* @see Window#isAlwaysOnTopSupported
* @see Window#setAlwaysOnTop(boolean)
public boolean isAlwaysOnTopSupported()

###@###.### 2004-12-23 15:45:26 GMT

Hardware and Software, Engineered to Work Together