diff --git a/COMPLIANCE b/COMPLIANCE deleted file mode 100644 --- a/COMPLIANCE +++ /dev/null @@ -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 , or on the Window Manager Spec list . - -- Karol - -( - 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 - -========================================================================== diff --git a/README b/README --- a/README +++ b/README @@ -5,8 +5,6 @@ - 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. - Below is some info for application developers about application interaction