On Fri, 15 Feb 2002, Darren Marshall wrote:
> When a window manager starts up and tries to gain control using
> XChangeWindowAttributes on the root window it normally receives a BadAccess
> error if another window manager is already running. However this doesn't
> appear to work with xinerama. I have been attempting to debug the problem but
> my knowledge of the source code is severely lacking. I have seen that when the
> X server is not operating in xinerama mode that EventSelectForWindow() in
> programs/Xserver/dix/events.c returns BadAccess and thats the end of it. When
> the X server is operating in xinerama mode the EventSelectForWindow() function
> also returns BadAccess but there follows further calls to
> EventSelectForWindow() which do not, due to the mask parameter not being set
> appropriately. Can anybody give me any pointers on how to fix this problem.
Things start in dix/Xext/panoramiXprocs.c:PanoramiXChangeWindowAttributes.
It iterates over screens, calling through the proc vector which is
dix/dix/dispatch.c:ProcChangeWindowAttributes. It's not obvious
to me that ChangeWindowAttributes is modifying the valueMask so you
should verify that stuff->valueMask isn't changing between iterations
through loop in PanoramiXChangeWindowAttributes. If somebody at the
ChangeWindowAttributes level or below is modifying this, it needs to
get pulled out of the stuff[1] array in PanoramiXChangeWindowAttributes
and the unmodified copy should be getting passed down through the proc
vector in the loop instead. But I don't see anywhere that it's getting
modified at the moment.
Mark.
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert