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

Reply via email to