9378a4fb4d
2003-11-16 Rob Adams <readams@readams.net> Create COMPLIANCE document describing metacity specification compliance. Right now gives detailed EWMH compliance; still need to add ICCCM compliance information. Also some minor fixes to bring metacity into compliance on some points. * COMPLIANCE: new file * src/display.h, src/display.c (meta_display_open), src/screen.c (set_supported_hint): add atom_net_wm_action_fullscreen and atom_net_wm_action_minimize * src/window.c (set_allowed_actions_hint): some fixes to which hints to set and add fullscreen and minimize.
149 lines
4.0 KiB
Plaintext
149 lines
4.0 KiB
Plaintext
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 2). 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 |