WindowFlags

After selecting a type from WindowTypes, you may further customize its behavior by setting one or more of these flags.

More...

Values

ValueMeaning
normal0
skipTaskbar1
alwaysOnTop2
alwaysOnBottom4
cannotBeActivated8
alwaysRequestMouseMotionEvents16

By default, simpledisplay will attempt to optimize mouse motion event reporting when it detects a remote connection, causing them to only be issued if input is grabbed (see: SimpleWindow.grabInput). This means doing hover effects and mouse game control on a remote X connection may not work right. Include this flag to override this optimization and always request the motion events. However btw, if you are doing mouse game control, you probably want to grab input anyway, and hover events are usually expendable! So think before you use this flag.

extraComposite32

On windows this will make this a layered windows (not supported for child windows before windows 8) to support transparency and improve animation performance.

transient64

Sets the window as a short-lived child of its parent, but unlike an ordinary child, it is still a top-level window. This should NOT be set separately for most window types.

A transient window will not keep the application open if its main window closes.

This may not be correctly implemented and its behavior is subject to change.

From the ICCM:

It is important not to confuse WM_TRANSIENT_FOR with override-redirect. WM_TRANSIENT_FOR should be used in those cases where the pointer is not grabbed while the window is mapped (in other words, if other windows are allowed to be active while the transient is up). If other windows must be prevented from processing input (for example, when implementing pop-up menus), use override-redirect and grab the pointer while the window is mapped.https://tronche.com/gui/x/icccm/sec-4.html

So if you are using a window type that already describes this like WindowTypes.dropdownMenu etc., you should not use this flag.

History: Added February 23, 2021 but not yet stabilized.

managesChildWindowFocus128

This indicates that the window manages its own platform-specific child window input focus. You must use a delegate, SimpleWindow.setRequestedInputFocus, to set the input when requested. This delegate returns the handle to the window that should receive the focus.

This is currently only used for the WM_TAKE_FOCUS protocol on X11 at this time.

History: Added April 1, 2022

dontAutoShow0x1000_0000

Don't automatically show window after creation; you will have to call show() manually.

Detailed Description

The different window types have different meanings of normal. If the window type already is a good match for what you want to do, you should just use WindowFlags.normal, the default, which will do the right thing for your users.

The window flags will not always be honored by the operating system and window managers; they are hints, not commands.

Meta