summaryrefslogtreecommitdiff
path: root/COMPLIANCE
blob: c0e8dce4bb107fa2061ae50978aa8a2198c3e0b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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)

- _NET_RESTACK_WINDOW (-)
  Metacity 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)
  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_STATE_DEMANDS_ATTENTION is neither read nor updated by
  metacity.  Metacity should unset it on window activation.

+ _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 (1.3)
  Metacity uses this property to prevent applications from stealing
  focus if supported by the toolkit.

+ _NET_FRAME_EXTENTS (1.3)
  If set in response to a _NET_REQUEST_FRAME_EXTENTS message received
  prior to the window being mapped, this may be an estimate.  This is,
  however, expressly allowed by the specification.

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

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