On Mon, May 23, 2011 at 7:25 AM, Arjan van de Ven <ar...@linux.intel.com> wrote: > I'm pretty sure the answer is that the concept of "top application" outright > does not exist.
Assuming we're talking the Window System "X" and its standards, then yes it does exist, and has existed for a long time -- in a standard-bearing form since OSF/Motif and CDE (e.g. XmDIALOG_SYSTEM_MODAL ). Freedesktop.org has updated the original architecture. However, it certainly is a concept that exists in X windows. (how else would "always keep window on top" be implemented in many desktops, or tool panels, etc). It is concerning to me, after the attending the recent conference, that MeeGo may be adding nonstandard extensions and functionality to the window manager (for video). So it would be nice to understand the official MeeGo position on working within accepted norms of X Windows and X Window Manager Protocols. And if they're being extended, that "upstream" agrees with the wisdom of the extensions. Having worked with X window managers since the very beginning, (prior having worked on X10 which didn't have the concept of a separate window manager), this is not the sort of thing that should be extended or overloaded in a cavalier fashion, even for a new paradigm like "Tablet." For more info, regarding the standard window types and their behavior, see below: http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2551529 /////////////////// _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE, ATOM[]/32 This SHOULD be set by the Client before mapping to a list of atoms indicating the functional type of the window. This property SHOULD be used by the window manager in determining the decoration, stacking position and other behavior of the window. The Client SHOULD specify window types in order of preference (the first being most preferable) but MUST include at least one of the basic window type atoms from the list below. This is to allow for extension of the list of types whilst providing default behavior for Window Managers that do not recognize the extensions. Rationale: This hint is intended to replace the MOTIF hints. One of the objections to the MOTIF hints is that they are a purely visual description of the window decoration. By describing the function of the window, the Window Manager can apply consistent decoration and behavior to windows of the same type. Possible examples of behavior include keeping dock/panels on top or allowing pinnable menus / toolbars to only be hidden when another window has focus (NextStep style). _NET_WM_WINDOW_TYPE_DESKTOP, ATOM _NET_WM_WINDOW_TYPE_DOCK, ATOM _NET_WM_WINDOW_TYPE_TOOLBAR, ATOM _NET_WM_WINDOW_TYPE_MENU, ATOM _NET_WM_WINDOW_TYPE_UTILITY, ATOM _NET_WM_WINDOW_TYPE_SPLASH, ATOM _NET_WM_WINDOW_TYPE_DIALOG, ATOM _NET_WM_WINDOW_TYPE_NORMAL, ATOM _NET_WM_WINDOW_TYPE_DESKTOP indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks. _NET_WM_WINDOW_TYPE_DOCK indicates a dock or panel feature. Typically a Window Manager would keep such windows on top of all other windows. _NET_WM_WINDOW_TYPE_TOOLBAR and _NET_WM_WINDOW_TYPE_MENU indicate toolbar and pinnable menu windows, respectively (i.e. toolbars and menus "torn off" from the main application). Windows of this type may set the WM_TRANSIENT_FOR hint indicating the main application window. _NET_WM_WINDOW_TYPE_UTILITY indicates a small persistent utility window, such as a palette or toolbox. It is distinct from type TOOLBAR because it does not correspond to a toolbar torn off from the main application. It's distinct from type DIALOG because it isn't a transient dialog, the user will probably keep it open while they're working. Windows of this type may set the WM_TRANSIENT_FOR hint indicating the main application window. _NET_WM_WINDOW_TYPE_SPLASH indicates that the window is a splash screen displayed as an application is starting up. _NET_WM_WINDOW_TYPE_DIALOG indicates that this is a dialog window. If _NET_WM_WINDOW_TYPE is not set, then windows with WM_TRANSIENT_FOR set MUST be taken as this type. _NET_WM_WINDOW_TYPE_NORMAL indicates that this is a normal, top-level window. Windows with neither _NET_WM_WINDOW_TYPE nor WM_TRANSIENT_FOR set MUST be taken as this type. /////////////////// Specifically, http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2505639 ///////////////////// Layered stacking order Some window managers keep the toplevel windows not in a single linear stack, but subdivide the stack into several layers. There is a lot of variation among the features of layered stacking order implementations. The number of layers may or may not be fixed. The layer of a toplevel window may be explicit and directly modifiable or derived from other properties of the window, e.g. the type of the window. The stacking order may or may not be strict, i.e. not allow the user to raise or lower windows beyond their layer. ///////////////////// -- Niels http://nielsmayer.com _______________________________________________ MeeGo-dev mailing list MeeGo-dev@meego.com http://lists.meego.com/listinfo/meego-dev http://wiki.meego.com/Mailing_list_guidelines