Does anyone know of programs that use real "group leader" windows? GTK programs have some "fake" group leader window, one that isn't reported to the window manager and therefore is considered not to exist. As you may remember their existence caused some grief, because group member windows are treated a lot like transient windows, and the most noticable effect was that you could not change their occupation.
I am now revisiting (and simplifying) the code that handles group member windows, but since (to my knowledge) I have never seen them in real practice, I'm asking if anyone knows of a program with which I can test it. My notes for CHANGES are provisionally this (too long probably): 13 - "TwmWindow.group" was once apparently set to 0 when a window had no group leader but this was changed to pointing to its own window. This resulted however in many places checking for both conditions, and several checking only for 0 which could not occur anymore. Changed it back to 0 (so we can now distinguish again windows that really indicate themselves as group leader, if we wish) and this gave rise to some simplifications, in particular this condition which occurs multiple times (tmp_win->group == tmp_win->w && tmp_win->group == t->group && tmp_win->group != t->w) via propagation of the first equality to: (tmp_win->group == tmp_win->w && tmp_win->w == t->group && tmp_win->w != t->w) Then change the convention tmp_win->group == tmp_win->w to tmp_win->group == 0 (tmp_win->group == 0 && tmp_win->w == t->group && tmp_win->w != t->w) but the first equality check is not needed at all since it basically means "is not a group member", but what we're really interested in is the second one "window t belongs to tmp_win's group". (tmp_win->w == t->group && tmp_win->w != t->w) The last condition seems to be equivalent to tmp_win != t, unless somehow more than one TwmWindow got associated with one Window (which should not happen). In fact this test can be moved or removed even in some cases. (t->group == tmp_win->w && t != tmp_win) Also, there were various loops through all TwmWindows looking for a group leader (or a transientfor), I replaced them with GetTwmWindow() which uses the Xlib function XFindContext() which uses a hash table lookup. -Olaf. -- ___ Olaf 'Rhialto' Seibert -- You author it, and I'll reader it. \X/ rhialto/at/xs4all.nl -- Cetero censeo "authored" delendum esse.