Remembering that 10.4.3 fixed this problem, I diff'ed its X11 with
10.4.2's and noticed that they added a new function that gets called
every time X11 is brought to the front. I then spent a little time
trying to fit it into the new source. Not knowing anything about X or
Quartz programming, I'm sure pretty much everything about it is wrong,
but it does seem to work (at least for me). :-)
And the relevant parts of the diff from the 1.2a3 I got off
freedesktop.org to my new version:
diff -r xorg-server-1.2a3_orig/hw/darwin/apple/X11Application.m xorg-
server-1.2a3/hw/darwin/apple/X11Application.m
365a366
> {
366a368,369
> QuartzMessageServerThread(kXDarwinBringAllToFront, 0);
> }
diff -r xorg-server-1.2a3_orig/hw/darwin/darwin.h xorg-server-1.2a3/hw/
darwin/darwin.h
150c150,151
< kXDarwinWindowMoved // window has moved on screen
---
> kXDarwinWindowMoved, // window has moved on screen
> kXDarwinBringAllToFront
diff -r xorg-server-1.2a3_orig/hw/darwin/quartz/quartz.c xorg-
server-1.2a3/hw/darwin/quartz/quartz.c
402a403,406
> case kXDarwinBringAllToFront:
> RootlessOrderAllWindows();
> break;
>
diff -r xorg-server-1.2a3_orig/miext/rootless/rootless.h xorg-
server-1.2a3/miext/rootless/rootless.h
434a435,436
> extern void RootlessOrderAllWindows (void);
>
diff -r xorg-server-1.2a3_orig/miext/rootless/rootlessWindow.c xorg-
server-1.2a3/miext/rootless/rootlessWindow.c
1417a1418,1451
> void
> RootlessOrderAllWindows (void)
> {
> int i;
> ScreenPtr pScreen;
> WindowPtr pWin;
> RootlessWindowRec *winRec;
>
> // 10.4.3's X11 had this windows_hidden variable in this file,
but
> // 10.5's doesn't seem to. Commenting it out works for now.
> //if (windows_hidden)
> //return;
>
> for (i = 0; i < screenInfo.numScreens; i++)
> {
> pScreen = screenInfo.screens[i];
> pWin = WindowTable[i];
> if (pScreen == NULL || pWin == NULL)
> continue;
>
> for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib)
> {
> if (!pWin->realized)
> continue;
>
> winRec = RootlessEnsureFrame (pWin);
> if (winRec == NULL)
> continue;
>
> RootlessReorderWindow (pWin);
> }
> }
> }
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/x11-users/email@hidden