Re: sawfish + xinerama dropping / unmapping windows
- From: Janek Kozicki <janek_listy wp pl>
- To: sawfish-list gnome org
- Subject: Re: sawfish + xinerama dropping / unmapping windows
- Date: Fri, 23 Oct 2009 19:15:33 +0200
I'm slowly trying to figure this out. The bug is very annoying,
occurs virtually always. Not rarely. Impossible to open stuff,
because it disappears. :)
I added single line in src/windows.c remove_window() (see below for
full function code):
fprintf(stderr,"deleting window, is it destroyed? - %d \n",(int)(destroyed));
And I see a very simple pattern of those messages:
- when a window is unmapped legally (when it *should* be unmapped),
because I simply closed something I get this message twice:
deleting window, is it destroyed? - 1
deleting window, is it destroyed? - 0
For each single window close operation: two messages.
- when a window is unmapped, when it shouldn't be, I get only ONE
message:
deleting window, is it destroyed? - 1
So - we have something to start with. Now I'm trying to figure out,
what to do next.
=================
Full function code in src/windows.c:
void
remove_window (Lisp_Window *w, bool destroyed, bool from_error)
{
DB(("remove_window (%s, %s)\n",
rep_STR(w->name), destroyed ? "destroyed" : "not-destroyed"));
fprintf(stderr,"deleting window, is it destroyed? - %d \n",(int)(destroyed));
if (w->id != 0)
{
if (!destroyed && !from_error)
{
grab_window_events (w, FALSE);
remove_window_frame (w);
/* Restore original border width of the client */
XSetWindowBorderWidth (dpy, w->id, w->attr.border_width);
}
if (!from_error)
destroy_window_frame (w, FALSE);
if (!WINDOW_IS_GONE_P (w))
remove_from_stacking_list (w);
if (!from_error)
focus_off_window (w);
w->id = 0;
pending_destroys++;
/* gc will do the rest... */
}
else if (w->frame != 0 && !from_error)
destroy_window_frame (w, FALSE);
}
--
Janek Kozicki |
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]