One difference with the original report that I should mention is that I encounter the crash only when I move the transient window off-screen. This seems fairly expected, since the NULL dereference occurs inside an if-block which tests for exactly such a condition. I used a transient window of xmh for testing (a bit faster to start up than Firefox and useful while I was offline).
On Wed 26 Dec 2007 at 21:05:30 +0100, Matthew D. Fuller via RT wrote: > I wonder if it has something to do with being a transient window > (which doesn't have occupation, without that option set, which isn't > in the given rc file). The same thought had occurred to me. I tried adding TransientHasOccupation and DecorateTransients (separately and together) but it made no difference. What does make a difference though is adding a Workspaces {...} statement. With that, the crash no longer occurs. Tracing this indeed reveals, in add_window.c:AddWindow(): /*===============[ Matthew McNeill 1997 ]==========================* * added the occupation parameter to this function call so that the * occupation can be set up in a specific state if desired * (restore session for example) */ /* note, this is where tmp_win->vs get setup, among other things */ if (restoredFromPrevSession) { SetupOccupation (tmp_win, saved_occupation); } else SetupOccupation (tmp_win, 0); tmp_win->old_parent_vs = vs; /*=================================================================*/ and workmgr.c:SetupOccupation() starts with if (! Scr->workSpaceManagerActive) { twm_win->occupation = 1; return; } I suppose this must be cleaned up, to at least initialise all other fields to some sane default. Untested: if (! Scr->workSpaceManagerActive) { twm_win->occupation = 1 << 0; /* occupy workspace #0 */ /* * Choose some valid virtual screen. * InitVirtualScreens() always seems to set this to non-NULL. */ twm_win->vs = Scr->vScreenList; /* only one virtual screen */ /* more?... */ return; } -Olaf. -- ___ Olaf 'Rhialto' Seibert -- You author it, and I'll reader it. \X/ rhialto/at/xs4all.nl -- Cetero censeo "authored" delendum esse.