Re: Sawfish/Gnome/Xinerama dropping windows



Scott Anderson <ee_in_co yahoo com> writes:
>     12582923 (has no name): ()  1600x23+0+1177  +0+1177
>         1 child:
>         14680067 "Start Panel": ("gnome-panel" "Gnome-panel")  1600x23+0+0  +0+1177

> user> (get-window-by-id 14680067)
> ()

So for some reason the panel has been removed from window_list, yet
the frame window remains.  window_list is often accessed but it seems
that items are only removed in remove_window (by zeroing the window
id; apparently actual removal is deferred to GC, which is why the code
is riddled with WINDOW_IS_GONE_P checks).  It appears that
remove_window must have been called with from_error set, otherwise the
frame would have been destroyed.  That only happens in error_handler
for BadWindow or BadDrawable errors.  You should be able to get the
error printed on stderr if you compile with DEBUG defined, see
sawmill.h (sic) about that.  But even if you manage that, it may be
difficult to associate the error with the X request that caused it
because of the asynchronous nature of Xlib.

>   Map State: IsUnviewable

This means that the window itself is mapped but some ancestor is
unmapped.  That would be the window frame.  Now, frames seem to get
unmapped in relatively few places in the code.  Are you running a
version with my reparenting cleanup patch?
<URL: http://sawfish.wikia.com/wiki/Reparenting_cleanup >

-- 
	Timo Korvola		<URL:http://www.iki.fi/tkorvola>


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