Re: a window got lost, again.
- From: Timo Korvola <Timo Korvola iki fi>
- To: sawfish-list gnome org
- Subject: Re: a window got lost, again.
- Date: Sat, 19 Mar 2011 00:10:59 +0200
So, for some reason Sawfish has removed the window from the managed
window list but not destroyed the frame. The frame is unmapped, hence
the client window is unviewable although mapped.
Windows are removed from window_list by setting w->id = 0. Garbage
collection will free the data structures later, but the window will for
most purposes appear gone as soon as w->id is zeroed. For instance get-
window-by-id and filter-windows will not find such windows. w->id is
only zeroed in remove_window. remove_window is called from half a dozen
functions, but only error_handler calls it with from_error set, which
prevents remove_window_frame and destroy_window_frame from being called
(presumably because they would raise more errors).
So it seems to be the error handler again. For some reason you seem to
be getting BadWindow or BadDrawable errors for existing windows. That is
strange. There is some special case code in error_handler for
ConfigureNotify events, but there is no reason why ConfigureNotify
events should be special. Others do not seem to have these errors, so
some unusual feature of your system or usage pattern (maybe long
sessions or lots of windows?) appears to trigger them. On the other hand
it remains unanswered whether this early detection of missing windows by
the error handler is particularly useful, considering that other window
managers seem to be doing fine by using only DestroyNotify events.
--
Timo Korvola <URL:http://www.iki.fi/tkorvola>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]