Dominik Vogt <fvwm-workers@fvwm.org> writes:
> On Thu, Dec 12, 2002 at 03:46:18PM -0500, Dan Espen wrote:
> > Dan Espen <[EMAIL PROTECTED]> writes:
> > > 
> > > I've been trying to debug this, but I'm pretty much stuck.
> > > I've been working off the workers list, but in this case,
> > > I'm copying the list since I'm out of ideas, and I see something
> > > pretty strange.
> > 
> > Further developments:
> > 
> > I find I can't create the problem in an Xnest window,
> > but I can on :0.  Thats seems very consistent.
> > 
> > Using prints, I see that HandleUnmapNotify calls
> > destroy_window leading to the window the main window
> > being destroyed.
> > 
> > HandleUnmapNotify doesn't seem to get called inside Xnest.
> > 
> > I think what I need to do is print more of the information
> > about the event.  Right now, I have no idea how to do that,
> > or what to look for,
> > so I have to do more research.  Of course, hints would be
> > appreciated.
> 
> Add this after the "if (!fw)" clause in HandleUnmalNotify():
> 
>   fprintf(stderr,
>       "hun: w=0x%08x f=0x%08x, synthetic=%d '%s'\n",
>       (int)te->xunmap.event, te->xunmap.send_event,
>       (int)fw, (fw) ? fw->visible_name : "(null");
> 
> te->xunmap.event is the client window id that was unmapped.  If
> te->xunmap.send_event is true, the client requested transition to
> withdrawn state.

Gee, maybe I'm not hopeless, I already have all that.
Here's what I gathered:

AddWindow: entered
AddWindow: window 8164FE0, window name is RAID Manager - dog.bert.sun.fi
AddWindow: entered
AddWindow: window 815FBD0, window name is About...
HandleUnmapNotify: calling destroy_window 815FBD0, event C00026, window c00026, 
Root 26, send_event 0
destroy_window: entered
destroy_window: About...
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleUnmapNotify: calling destroy_window 8164FE0, event C00012, window c00012, 
Root 26, send_event 0
destroy_window: entered
destroy_window: RAID Manager - dog.bert.sun.fi
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered
HandleDestroyNotify: calling destroy_window
destroy_window: entered

The debug statement in HandleUnmapNotify looks like this:

        fprintf(stderr,"HandleUnmapNotify: calling destroy_window %X, event %X, 
window %X, Root %X, send_event %X\n",
                (int)fw,(int)te->xunmap.event,
                (int)te->xunmap.window,
                (int)Scr.Root,
                (int)te->xunmap.send_event);

What you labeled as "synthetic" I've got labeled as "window".
I wanted to know if it was a synthetic event, but I didn't know
how to do that.  What value would fw have if it was synthetic?

In destroy_window, theres one statment showing entry and another
when fw is non-zero.

> > Doesn't an Unmap event indicate the application has unmapped
> > itself?
> 
> No, fvwm gets an XUnmapNotify when the X server unmaps a client
> window.  It does not matter why the window was unmapped..  I can't
> think of anything else but to find all places where
> XUnmapWindow(), XDestroyWindow() or XWithdrawWindow() is called for
> a client window throughout the fvwm core and print debug output for
> each (et least the window id and the title).

OK, I think you are saying that there are other places a window
can get unmapped/destroyed/withdrawn by fvwm other than destroy_window.
I'll try to find all the other places and see if I can trace them.

> But to be honest, I
> don't expect much to come out of the whole debug session.  Since
> you said that the app tries to be its own window manager, I
> strongly suspect that its doing something terribly wrong.

Good.  Thats my feeling too.
The actual application executable has a name that ends in .EXE,
(a sure sign of trouble).  But I don't think this is another one
of those Mainsoft applications (like Rational Rose).

> It may help to watch the events flying around prior to the window
> being unmapped.

We don't seem to have any debug logic that produces a trace of events.
It seems like it would be pretty useful.

-- 
Dan Espen                           E-mail: [EMAIL PROTECTED]

--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to