Dmitry Timoshkov wrote:
So, all the checks metacity does for window decorations and window size are contradicting the spec IMO.
Both the ICCCM and EWMH are specs for "hints" - they have a big "any of these hints may be ignored" disclaimer attached.
In practice, categorically ignoring (or misinterpreting) the hints would result in an unusable WM, but so would blindly following them all. Most real window managers are pretty complex with lots of special cases and "magic" to support legacy apps or whatever.
We used to have a "strict spec compliance"/"disable workarounds" mode in metacity and it was unusable unless you ran GTK/Qt apps exclusively, pretty much.
While my memory is too fuzzy to point to specific bugs, I'd be willing to bet that I added more than one little hack inspired by WINE, which used to be unaware of EWMH and perhaps a bit sketchier than Qt/GTK on the older ICCCM behaviors too.
Anyway, few WM bugs can be resolved by appeal to specifications alone...
Also the fact that a window isn't resizeable means only that it's not supposed to be resizeable by a user, still allowing to resize it programmatically.
In practice the geometry hints are widely treated as strict constraints honored for all configure requests from any source. Most WMs ignore them at least sometimes though, e.g. ignoring the size increments when maximizing is a common choice.
If nothing else, in modern desktops it's quite hard to tell which configure requests are user-originated and which are not.
Havoc