WM spec issues: UTF8_STRING, properties rather than selections



Dear all,

I have just read version 1.1 of the WM spec, and while I have found it
to be an altogether well-designed standard, I have a couple of issues
with it.

The first one is important.  The WM spec consistently uses
``UTF-8_STRING'' as the type of text properties.  However, the atom
name that is used by XFree86 is `UTF8_STRING'' (note the missing
dash).  You'll doubtless agree that consistency in this area is
essential, and I hope that this is merely an oversight on your part,
and one that will be corrected in the next revision of the spec.

(You may be interested to know that an early draft of what has since
become UTF8_STRING used UTF-8 as the atom name.  However, I then
realised that it is impossible to have an XA_UTF-8 macro in C, hence
the change of the atom name.)

The other issue is that the WM spec uses root window properties for a
number of WM-dependent data (starting with _NET_SUPPORTED).  The
problem with that is that if the window manager crashes, or execs a
different one, these properties will not necessarily be removed.

The ICCCM-promoted solution to this problem is to use selections
instead.  It seems to me that instead of putting e.g. a _NET_SUPPORTED
on the root window, the window manager should claim a _NET_SUPPORTED
property on the root window instead; a client requesting this property
should receive the same list of atoms that it currently gets from the
property.

This approach has the advantage that the selection will automagically
disappear if the window manager closes its connection to the display.

I do not know whether it is too late to make a change of this
magnitude; however, if possible, this change should be made so as to
guarantee robustness of the protocol in presence of WM changes.

With sincere regards,

                                        Juliusz Chroboczek

P.S. I am not subscribed to the list, and I would appreciate it if you
could CC me with any messages related to the above.




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