OroboROX Standards Compliance
=============================

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 OroboROX compliance with the relevant 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 OroboROX.  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 (-)
  OroboROX does not implement large desktops.  Regardless, according
  to the specification, OroboROX SHOULD set this property to the
  screen size, and update it if the screen size changes because of a
  RandR change.

+ _NET_DESKTOP_VIEWPORT (-)
  OroboROX does not implement viewports.  However, according to the
  specification, OroboROX MUST set this property to (0,0), which it does.

+ _NET_CURRENT_DESKTOP (1.3)

+ _NET_DESKTOP_NAMES (1.3)
	OroboROX does not read or set this property.


+ _NET_ACTIVE_WINDOW (1.3)

+ _NET_WORKAREA (1.3)

+ _NET_SUPPORTING_WM_CHECK (1.3)

+ _NET_VIRTUAL_ROOTS (1.3)
  OroboROX 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_SHOWING_DESKTOP (1.3)

- _NET_MOVERESIZE_WINDOW (-)
  OroboROX does not support this message.  

- _NET_WM_MOVERESIZE (1.3)

- _NET_RESTACK_WINDOW (-)
  OroboROX does not currently support this message.

- _NET_REQUEST_FRAME_EXTENTS (1.3)  

  c. Application Window Properties
  --------------------------------

+ _NET_WM_NAME (1.3)

+ _NET_WM_VISIBLE_NAME (1.3)
  OroboROX does not set this property, but will never display
  a name different from _NET_WM_NAME

+ _NET_WM_ICON_NAME (1.3)

+ _NET_WM_VISIBLE_ICON_NAME (1.3)
  OroboROX does not set this property, but 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)
  OroboROX doesn't implement viewports so _NET_WM_STATE_STICKY is
  the same thing as net_wm_desktop==-1 (show on all workspaces)
  _NET_WM_STATE_DEMANDS_ATTENTION is neither read nor updated.
  OroboROX should unset it on window activation.

+ _NET_WM_ALLOWED_ACTIONS (1.3)
  OroboROX keeps this hint up to date.

+ _NET_WM_STRUT (1.3)

+ _NET_WM_STRUT_PARTIAL (1.3)

- _NET_WM_ICON_GEOMETRY (1.3)

- _NET_WM_ICON (1.3)

+ _NET_WM_PID (1.3)

+ _NET_WM_HANDLED_ICONS (1.3)
  OroboROX does not read or set this property.  However, OroboROX
  never managed iconified windows, and so has no need to do so.

- _NET_WM_USER_TIME (-)
  OroboROX does not read or set this property.  The EWMH does not
  require it to do so, but it should support it.

- _NET_FRAME_EXTENTS (1.3)

  d. Window Manager Protocols
  ---------------------------
- _NET_WM_PING (1.3)

3) ICCCM Compliance
-------------------
TODO
