Hi. Perhaps a digression. It's on how John Harper did. Commit log of b14ab says: ------------------------------------------------------------------------ 2001-02-18 John Harper <[email protected]> * functions.c (Frestack_windows, Fx_raise_window, Fx_lower_window): be sure to never alter the stacking of destroyed windows
[ I think this should fix the random crashes that some people have been experiencing - it was possible for a deleted window to be reinserted in the stacking list. Then, when the deleted window got garbage collected bogus pointers were left in the list.. ] [snipped] ------------------------------------------------------------------------ So he had to solve the crash for the similar reason. But after looking at the Timo's patch and explanation, Harper's original code looks incomplete. I wonder why. It's the advantage of hindsight, though. In this commit, he introduced the macro WINDOW_IS_GONE_P, and replaced existing checks with it. And in the commit right after the above one, he inserts three more WINDOW_IS_GONE_P. On Fri, 9 Oct 2009 22:05:44 +0200, Janek Kozicki wrote: > PS: As a side note - the XGrabServer method didn't work at all. > Instant crash on first try, even though XGrabServer() indeed grabs > server! I tested that it indeed grabs server with simple attached program :) > Grabbing the server may not be necessary, but if it is, use F[un]grab_server instead of raw XGrabServer. The former takes care for nesting, so less prone to bug. Regards, Teika (Teika kazura)
