Metacity Standards Compliance ============================= $Id$ 1) Introduction 2) EWMH Compliance a. Root Window Properties b. Root Window Messages c. Application Window Properties d. Window Manager Protocols 3) ICCCM Compliance 1) Introduction --------------- This document details metacity compliance with the relevent standards. The format of this document is as follows: [-/+?] Hint Name/Feature Name (Version number) Errata/Comments The first character indicates the level of compliance as follows: - none / partial + complete ? unknown The title indicates a feature or a hint in the specification, and the version number indicates the minimum version of the specification supported by metacity. Later versions may be supported if no incompatible changes have been made in the specification. 2) EWMH Compliance ------------------ The EWMH, or Extended Window Manager Hints is a freedesktop.org- developed standard to support a number of conventions for communication between the window manager and clients. It builds on and extends the ICCCM (See Section 3). A copy of the current EWMH standard is available at http://freedesktop.org/Standards/wm-spec/ a. Root Window Properties ------------------------- + _NET_SUPPORTED (1.3) + _NET_CLIENT_LIST (1.3) + _NET_NUMBER_OF_DESKTOPS (1.3) - _NET_DESKTOP_GEOMETRY (-) Metacity does not implement large desktops. Regardless, according to the specification, metacity SHOULD set this property to the screen size, and update it if the screen size changes because of a RandR change. - _NET_DESKTOP_VIEWPORT (-) Metacity does not implement viewports. However, according to the specification, metacity MUST set this property to (0,0) + _NET_CURRENT_DESKTOP (1.3) + _NET_DESKTOP_NAMES (1.3) + _NET_ACTIVE_WINDOW (1.3) + _NET_WORKAREA (1.3) + _NET_SUPPORTING_WM_CHECK (1.3) + _NET_VIRTUAL_ROOTS (1.3) Metacity does not read or set this property, but it does not use virtual roots to implement virtual desktops, so it complies with the specification. + _NET_DESKTOP_LAYOUT (1.3) + _NET_SHOWING_DESKTOP (1.3) b. Root Window Messages ----------------------- + _NET_CLOSE_WINDOW (1.3) - _NET_MOVERESIZE_WINDOW (-) Metacity does not support this message. The specification states that metacity should treat this message like a ConfigureRequest. Not hard to implement; just hasn't been done. + _NET_WM_MOVERESIZE (1.3) c. Application Window Properties -------------------------------- + _NET_WM_NAME (1.3) + _NET_WM_VISIBLE_NAME (1.3) Metacity does not set this property, but metacity will never display a name different from _NET_WM_NAME + _NET_WM_ICON_NAME (1.3) + _NET_WM_VISIBLE_ICON_NAME (1.3) Metacity does not set this property, but metacity will never display a name different from _NET_WM_NAME + _NET_WM_DESKTOP (1.3) + _NET_WM_WINDOW_TYPE (1.3) / _NET_WM_STATE (1.3) Metacity does not recognize separate vertical and horizontal maximization states. Currently metacity will do a two-dimensional maximization if either property is set. See: http://bugzilla.gnome.org/show_bug.cgi?id=113601 Metacity doesn't implement viewports so _NET_WM_STATE_STICKY is unimplemented. + _NET_WM_ALLOWED_ACTIONS (1.3) Metacity keeps this hint up to date. The code is somewhat crufty and should be rewritten, though it is functional. See: http://bugzilla.gnome.org/show_bug.cgi?id=90420 + _NET_WM_STRUT (1.3) + _NET_WM_STRUT_PARTIAL (1.3) + _NET_WM_ICON_GEOMETRY (1.3) Metacity uses this property to draw minimize/restore animations + _NET_WM_ICON (1.3) + _NET_WM_PID (1.3) + _NET_WM_HANDLED_ICONS (1.3) Metacity does not read or set this property. However, metacity never managed iconified windows, and so has no need to do so. - _NET_WM_USER_TIME (-) Metacity does not read or set this property. The EWMH does not require it to do so, but it should support it. d. Window Manager Protocols --------------------------- + _NET_WM_PING (1.3) 3) ICCCM Compliance ------------------- TODO