Re: Clearing out session list

Tom Tromey <> writes:

> Owen> In a related question, are there any docs that describe what a
> Owen> WM has to do to work with smproxy? I can't find anything in the
> Owen> smproxy man page, or the SM docs, or the ICCCM.
> I don't know of any such documentation.  Probably your only recourse
> is to grab the smproxy source and see what it is trying to do.
> Bummer.

Well, fooling around with the smproxy source reveals that this
is a bug in smproxy.

In particular, the problem is that smproxy is selecting for
DestroyNotify events with SubstructureNotifymask instead
of StructureNotifyMask. Because of some details in the
way that smproxy works, this (by coincidence) ends up working
for window managers where the client window is reparented
to be a direct child of the frame window that the window
manager creates, but does not work for window managers like
fvwm where there is an intervening window in the heirarchy.

The following patch, applied to the smproxy sources, fixes
the problem. I'll send this to the XFree86 maintainers, but
we may want to actually distribute the patched version
with GNOME, calling it, say, gsmproxy. And put that in the
default session instead of smproxy.

Since people probably don't have a copy of the XFree86
sources sitting around, I've put a patched copy of
the sources at:

There are (trivial) instructions for building in 


--- smproxy.c.ots	Thu Jul 16 14:48:41 1998
+++ smproxy.c	Thu Jul 16 14:48:47 1998
@@ -814,7 +814,7 @@
     XSelectInput (disp, event->window,
-	SubstructureNotifyMask | PropertyChangeMask);	
+	StructureNotifyMask | PropertyChangeMask);	

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