GNOME Bugzilla – Bug 152030
Locations where Metacity violates spec
Last modified: 2005-01-25 17:01:24 UTC
There are a couple locations where Metacity violates the spec. The solution may be to change Metacity, or it might be that we need to change the spec. I'm going to guess the latter so that I know where to file this (I wasn't sure whether it would go under the general component or the EWMH specification component) 1) The code in window.c ignores the TIMESTAMP if the _NET_WM_USER_TIME is set. This violates startup-notification/doc/startup-notification.txt, which says "[TIMESTAMP is used] for windows that have matching _NET_STARTUP_ID property if they don't have any _NET_WM_USER_TIME property set or if it's older." However, Rob's explanation of how things should work in comment 20 of bug 115650 (which matches what we have implemented) seems to make sense. I guess it's kind of hard to tell which one really is right, because I can't imagine a single case where it matters (the spec just about assumes that both won't be set and I can't think of a non-buggy case when they both would be). 2) We don't want to launch metacity-dialog with full startup-notification because it wouldn't make sense to show a busy cursor. So instead we have manually set the _NET_WM_USER_TIME of its window when it launches to what we would want the TIMESTAMP to be. This violates the EWMH where it states that "Clients should start setting the [_NET_WM_USER_TIME] property only after receiving the first event from user interaction, they shouldn't set it before receiving first input event." But this really does seem to make sense in this case.
1) TIMESTAMP is obsolete, and no one said that the timestamp embedded in _NET_STARTUP_ID has identical semantics to TIMESTAMP (even if implied). And as I said above, I don't think it matters anyway... 2) The spec has changed now--see http://mail.gnome.org/archives/wm-spec-list/2005-January/msg00001.html. Good enough for me, I'm marking as FIXED. :)