Drop the COMPLIANCE file
Summary: This file has not been tracked for years. Nobody added when new features were added, when existing code was broken, etc. E.g. none of the changes since EWMH 1.4 is listed, none of the kde specific extensions is listed. The document does not contain anything about Wayland protocol support. I would not trust this document at all to say whether KWin is compliant, but would check the source code. And after all most of the compliance is done in KWindowSystem and KWayland, not in KWin. Also the document lists compliance of other non-KWin elements such as Qt, kicker (kde 3 thing, not application launcher), etc. This shows it's also something which doesn't belong in KWin's source tree. Reviewers: #kwin Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D17601
This commit is contained in:
parent
7a28e0fe9a
commit
28a52b2fd9
2 changed files with 0 additions and 256 deletions
254
COMPLIANCE
254
COMPLIANCE
|
@ -1,254 +0,0 @@
|
||||||
W A R N I N G:
|
|
||||||
--------------
|
|
||||||
This document is a work in progress and is in no way complete or accurate!
|
|
||||||
Its current purpose is in aiding the KWin NetWM audit for a future KWin release.
|
|
||||||
|
|
||||||
NetWM Compliance Document:
|
|
||||||
==========================
|
|
||||||
|
|
||||||
Listed below are all the NetWM (or EWM) hints decided upon on freedesktop.org
|
|
||||||
(as of version 1.3draft, Nov 27, 2002) and KWin's current level of
|
|
||||||
compliance with the spec. Some parts also involve the pager and clients which
|
|
||||||
this document will cater for as well where applicable.
|
|
||||||
|
|
||||||
If you modify the level of NetWM compliance (via modification of kwin/*,
|
|
||||||
kdecore/netwm.* or kdecore/kwin.* etc.), or notice any new hints that
|
|
||||||
were added after version 1.2, please modify this document appropriately.
|
|
||||||
Properties are ordered in the table in the order they are found in the
|
|
||||||
specification. To list any important notes regarding a property, just
|
|
||||||
add them as follows:
|
|
||||||
|
|
||||||
_NET_NUMBER_OF_DESKTOPS root window property done
|
|
||||||
+----------------------------------------------------------------+
|
|
||||||
| This property SHOULD be updated by the Window Manager to |
|
|
||||||
| indicate the number of virtual desktops. KWin DOES update this |
|
|
||||||
| property when the pager changes the number of desktops. |
|
|
||||||
+----------------------------------------------------------------+
|
|
||||||
|
|
||||||
If you have any questions regarding the specification, feel free to ask on the KWin
|
|
||||||
mailing list <kwin@kde.org>, or on the Window Manager Spec list <wm-spec-list@gnome.org>.
|
|
||||||
-- Karol <kszwed@kde.org>
|
|
||||||
|
|
||||||
(
|
|
||||||
compliance :
|
|
||||||
- = none,
|
|
||||||
/ = partial,
|
|
||||||
+ = complete,
|
|
||||||
* = KWin is compliant, but something else needs checking (e.g. Qt)
|
|
||||||
? = unknown
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
NETWM spec compliance (whole document):
|
|
||||||
version 1.2
|
|
||||||
======================
|
|
||||||
|
|
||||||
+ 1.
|
|
||||||
+ 2.3. Feature not implemented.
|
|
||||||
+ 2.4. Feature not implemented.
|
|
||||||
+ 2.5.
|
|
||||||
+ 2. (rest of the section)
|
|
||||||
+ 3.1.
|
|
||||||
This property is complete in the sense that all implemented properties
|
|
||||||
are listed here.
|
|
||||||
CHECKME : check it's complete
|
|
||||||
/ 3.2.
|
|
||||||
The spec requires that _NET_CLIENT_LIST contains the windows in their
|
|
||||||
initial mapping order, which is currently not true for NET::Desktop
|
|
||||||
windows.
|
|
||||||
Note that xprop lists only first element in WINDOW type properties.
|
|
||||||
+ 3.3.
|
|
||||||
Note that KWin does not use the virtual root windows technique,
|
|
||||||
so it doesn't set _NET_VIRTUAL_ROOTS at all.
|
|
||||||
+ 3.4.
|
|
||||||
KWin doesn't implement large desktops, so it ignores
|
|
||||||
the message, and only sets the property to the screen size.
|
|
||||||
+ 3.5.
|
|
||||||
KWin doesn't implement viewports, so it correctly sets
|
|
||||||
the property to (0,0) pairs and ignores the message.
|
|
||||||
+ 3.6.
|
|
||||||
+ 3.7.
|
|
||||||
+ 3.8.
|
|
||||||
KWin currently extends the message a bit, with data.l[0] being 1 or 2,
|
|
||||||
meaning 'from application'/'from pager', and data.l[1] contains
|
|
||||||
timestamp. This is used for focus stealing prevention purposes, and
|
|
||||||
will be proposed for next version of the spec.
|
|
||||||
+ 3.9.
|
|
||||||
+ 3.10.
|
|
||||||
+ 3.11.
|
|
||||||
KWin doesn't use the virtual roots technique for creating virtual
|
|
||||||
desktops, so it doesn't set the property.
|
|
||||||
- 3.12.
|
|
||||||
- 3.13.
|
|
||||||
+ 4.1.
|
|
||||||
+ 4.2.
|
|
||||||
+ 4.3.
|
|
||||||
Due to implementation details KWin actually allows moving or resizing
|
|
||||||
by keyboard when requested to be done by mouse, and vice versa.
|
|
||||||
+ 5.1.
|
|
||||||
+ 5.2.
|
|
||||||
+ 5.3.
|
|
||||||
+ 5.4.
|
|
||||||
+ 5.5.
|
|
||||||
/ 5.6. The handling of _NET_WM_WINDOW_TYPE itself is correct and complete.
|
|
||||||
Supported window types: DESKTOP, DOCK, TOOLBAR, MENU, UTILITY,
|
|
||||||
SPLASH, DIALOG, NORMAL.
|
|
||||||
UTILITY should get better placement.
|
|
||||||
TOOLBAR - many parts in KDE still treat this as "tool" window.
|
|
||||||
- should the decoration be shown for the toolbars?
|
|
||||||
KDE extensions:
|
|
||||||
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE - this seems to mean "this window
|
|
||||||
should be borderless", but it's actually used also for other
|
|
||||||
things, like fullscreen windows. The plan is to get rid of this
|
|
||||||
flawed thing as soon as possible.
|
|
||||||
/ 5.7.
|
|
||||||
The handling of _NET_WM_STATE itself is correct and complete.
|
|
||||||
Supported states: MODAL, MAXIMIZED_VERT, MAXIMIZED_HORZ, SHADED,
|
|
||||||
SKIP_TASKBAR, SKIP_PAGER, HIDDEN, ABOVE, BELOW.
|
|
||||||
STICKY is not supported, because KWin doesn't implement viewports.
|
|
||||||
BELOW - in order to make 'allow windows to cover the panel' feature
|
|
||||||
in Kicker work KWin interprets this state a bit differently
|
|
||||||
for DOCK windows. While normal DOCK windows are in their
|
|
||||||
extra layer above normal windows, making them BELOW doesn't
|
|
||||||
move them below normal windows, but only to the same layer, so
|
|
||||||
that windows can hide Kicker, but Kicker can be also raised
|
|
||||||
above the windows. A bit hacky, but it's not really against
|
|
||||||
the spec, and I have no better idea.
|
|
||||||
KDE extensions:
|
|
||||||
_NET_WM_STATE_STAYS_ON_TOP - has the same meaning like ABOVE,
|
|
||||||
and is deprecated in favour of it; it lacks the _KDE prefix
|
|
||||||
* 5.8.
|
|
||||||
The handling of _NET_WM_ALLOWED_ACTIONS itself is correct and complete.
|
|
||||||
Supported actions: MOVE, RESIZE, MINIMIZE, SHADE, MAXIMIZE_HORZ,
|
|
||||||
MAXIMIZE_VERT, CHANGE_DESKTOP, CLOSE
|
|
||||||
STICK is not supported, because KWin does not implement viewports.
|
|
||||||
Kicker etc. need to be updated.
|
|
||||||
+ 5.9.
|
|
||||||
* 5.10.
|
|
||||||
Property is not used in KWin.
|
|
||||||
Kicker needs to be checked.
|
|
||||||
* 5.11.
|
|
||||||
KWin's handling of the property is correct.
|
|
||||||
Qt should be checked.
|
|
||||||
+ 5.12.
|
|
||||||
- 5.13.
|
|
||||||
Property is not used in KWin, KWin never provides icons for iconified windows.
|
|
||||||
Kicker or its taskbar don't set it either. However, the property is flawed,
|
|
||||||
and should be replaced by manager selection or similar mechanism.
|
|
||||||
+ 6.1.
|
|
||||||
+ 6. (rest)
|
|
||||||
+ 7.4.
|
|
||||||
The urgency hint is mapped to the _NET_WM_DEMANDS_ATTENTION flag.
|
|
||||||
* 7.5.
|
|
||||||
Qt often sets maximum size smaller than minimum size. This seems to be caused
|
|
||||||
by delayed layout calculations.
|
|
||||||
* 7.6.
|
|
||||||
Kicker should be checked.
|
|
||||||
? 7.7.
|
|
||||||
+ 7. (rest of the section)
|
|
||||||
|
|
||||||
|
|
||||||
+ _NET_WM_FULLSCREEN_MONITORS Status: Done.
|
|
||||||
+----------------------------------------------------------------+
|
|
||||||
| The Window Manager MUST keep this list updated to reflect the |
|
|
||||||
| current state of the window. The application window sends this |
|
|
||||||
| in a ClientMessage to the root window. KWin persists this info |
|
|
||||||
| both internally as well as against the application window. |
|
|
||||||
| This data is used to spread the fullscreen application window |
|
|
||||||
| across the requested topology, if valid. |
|
|
||||||
+----------------------------------------------------------------+
|
|
||||||
|
|
||||||
ICCCM spec compliance (whole document):
|
|
||||||
version 2.0
|
|
||||||
======================
|
|
||||||
|
|
||||||
/ 1.2.3.
|
|
||||||
KWin uses KWIN_RUNNING atom that's missing the leading underscore.
|
|
||||||
Some parts of KDE perhaps may be missing the leading underscore.
|
|
||||||
/ 1.2.6.
|
|
||||||
Should be checked.
|
|
||||||
+ 1. (rest of the section)
|
|
||||||
+ 2.8. kmanagerselection.* in kdecore
|
|
||||||
+ 2. (rest of the section)
|
|
||||||
Not a KWin thing.
|
|
||||||
* - patch sent to TT to make QClipboard sufficiently compliant
|
|
||||||
+ 3.
|
|
||||||
Feature not supported, obsolete.
|
|
||||||
+ 4.1.1
|
|
||||||
+ 4.1.2 (intro)
|
|
||||||
+ 4.1.2.1
|
|
||||||
Used as a fallback for _NET_WM_NAME.
|
|
||||||
+ 4.1.2.2
|
|
||||||
Used as a fallback for _NET_WM_ICON_NAME.
|
|
||||||
? 4.1.2.3
|
|
||||||
? - PSize, PPosition, USize, UPosition
|
|
||||||
? - clients - Qt simply sets both
|
|
||||||
+ - PWinGravity - window geometry constraints have higher priority than gravity
|
|
||||||
/ - PBaseSize - PMinSize is not used as a fallback for size increments
|
|
||||||
+ - (the rest)
|
|
||||||
/ 4.1.2.4
|
|
||||||
+ - input - see 4.1.7
|
|
||||||
+ - initial_state
|
|
||||||
+ - icon - feature not supported
|
|
||||||
+ - window_group
|
|
||||||
+ - urgency - mapped to _NET_WM_DEMANDS_ATTENTION
|
|
||||||
/ 4.1.2.5 - it should be checked it's used correctly in Kicker etc.
|
|
||||||
/ 4.1.2.6 - should be checked
|
|
||||||
NETWM section 7.3. is supported too, even though it's a slight ICCCM violation.
|
|
||||||
+ 4.1.2.7
|
|
||||||
- 4.1.2.8
|
|
||||||
See 4.1.8.
|
|
||||||
+ 4.1.2.9 - handled by Xlib call
|
|
||||||
+ 4.1.3.1
|
|
||||||
+ 4.1.3.2
|
|
||||||
Feature not supported (4.1.2.4 - icons)
|
|
||||||
* 4.1.4 it should be checked Qt/KDE clients handle this properly
|
|
||||||
/ 4.1.5
|
|
||||||
This needs fixing.
|
|
||||||
+ 4.1.6
|
|
||||||
+ 4.1.7
|
|
||||||
- 4.1.8
|
|
||||||
KWin only installs colormap required by the active window.
|
|
||||||
- 4.1.9
|
|
||||||
Feature not supported, except for WM_ICON_NAME as a fallback for _NET_WM_ICON_NAME.
|
|
||||||
+ 4.1.10
|
|
||||||
+ 4.1.11
|
|
||||||
Window groups are only used for supporting NETWM section 7.3.
|
|
||||||
+ 4.2.5
|
|
||||||
/ 4.2.7
|
|
||||||
Qt doesn't set revert-to to Parent.
|
|
||||||
+ 4.2.8.1 frozen clients may be XKill-ed upon a user request though
|
|
||||||
+ 4.3
|
|
||||||
? 4.4
|
|
||||||
+ 4. (rest of the section)
|
|
||||||
+ 5.3. not KWin related
|
|
||||||
+ 5. (rest of the section )
|
|
||||||
? 6.1. clients thing
|
|
||||||
? 6.2. clients thing - Qt perhaps should force rule 2.
|
|
||||||
+ 6.3.
|
|
||||||
? 6. (rest of the section)
|
|
||||||
+ 7. - no idea what it is, but it doesn't seem to be KWin related
|
|
||||||
+ 8.
|
|
||||||
|
|
||||||
|
|
||||||
KDE-specific extensions (for completeness):
|
|
||||||
|
|
||||||
Property Name Type
|
|
||||||
==========================================================================
|
|
||||||
_KDE_WM_CHANGE_STATE root window message
|
|
||||||
_KDE_NET_SYSTEM_TRAY_WINDOWS root window property
|
|
||||||
_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR window property
|
|
||||||
_KDE_NET_WM_FRAME_STRUT window property
|
|
||||||
_NET_WM_CONTEXT_HELP
|
|
||||||
- Qt extension
|
|
||||||
- has no vendor prefix even though it's not part of the spec
|
|
||||||
_NET_WM_STATE_STAYS_ON_TOP
|
|
||||||
- KDE extension
|
|
||||||
- has no vendor prefix even though it's not part of the spec
|
|
||||||
- deprecated in favor of _NET_WM_STATE_KEEP_ABOVE
|
|
||||||
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE
|
|
||||||
- window type, makes the window borderless
|
|
||||||
- unclear semantics, used also for fullscreen windows
|
|
||||||
- deprecated in favor of other window types
|
|
||||||
|
|
||||||
==========================================================================
|
|
2
README
2
README
|
@ -5,8 +5,6 @@
|
||||||
|
|
||||||
- If you want to develop KWin, see file HACKING.
|
- If you want to develop KWin, see file HACKING.
|
||||||
|
|
||||||
- If you want to check KWin's compliance with specifications, see file COMPLIANCE.
|
|
||||||
|
|
||||||
- File CONFIGURATION includes some details on configuring KWin.
|
- File CONFIGURATION includes some details on configuring KWin.
|
||||||
|
|
||||||
- Below is some info for application developers about application interaction
|
- Below is some info for application developers about application interaction
|
||||||
|
|
Loading…
Reference in a new issue