WM_TRANSIENT_FOR and _NET_WM_STATE_MODAL inconsistancy



Hello all,

The current draft of the ewmh has an inconsistancy which I feel should be
fixed:

The modal hint is described as:

  _NET_WM_STATE_MODAL indicates that this is a modal dialog box. If the
  WM_TRANSIENT_FOR hint is set to another toplevel window, the dialog is modal
  for that window; if WM_TRANSIENT_FOR is not set or set to the root window
  the dialog is modal for its window group.

Note that is says if WM_TRANSIENT_FOR is _not set_ then the window is to be
treated as a transient for the entire group. This seems rather
counter-intuitive. Or is it possible for a window to be modal for the group
without being transient (I can't picture this case.).

Also stated in the spec is:

  If the WM_TRANSIENT_FOR property is set to None or Root window, the window
  should be treated as a transient for all other windows in the same group. It
  has been noted that this is a slight ICCCM violation, but as this behavior
  is pretty standard for many toolkits and window managers, and is extremely
  unlikely to break anything, it seems reasonable to document it as standard.

I believe this is more correct. The WM_TRANSIENT_FOR property is _set_, but
to None or the Root.

As it is, one of these two needs to change. Either not setting
WM_TRANSIENT_FOR makes a modal window transient for its group, or the modal
hint should be uneffective (or system modal? :>) when WM_TRANSIENT_FOR is not
set, and should be modal for the group when it is set to "None" or "Root".

Ben

Attachment: pgpycpoOeivqx.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]