Re: Xinerama || Pseudoramix
Re: Xinerama || Pseudoramix
- Subject: Re: Xinerama || Pseudoramix
- From: Greg Parker <email@hidden>
- Date: Wed, 30 Jul 2003 10:31:22 -0700
On Wednesday, July 30, 2003, at 2:33 AM, John Davidorff Pell wrote:
I don't know how apple has decided to implement their unhappy version
of Xinerama, but its making me crazy over here. I'm NOT an X11
programmer, so I *may* have made some incorrect assumptions, but I do
know that my program isn't working.
I'm trying to make fspanel work for me, but since I have 2 screens it
isn't being happy w/ the dead space below my primary monitor. The code
sets its screen to
DefaultScreen ( dd )
where
dd = XOpenDisplay (NULL)
As I understand it this means that it should get the default screen,
which should not be the Xinerama display (the whole thing) but should
be the actual screen. it would still be able to move across the
Xinerama display, but the place it starts from should be on the
default screen, right? If not then my issue is w/ Xinerama, not
apple's Pseudoramix.
(Disclaimer: I wrote PseudoramiX for XDarwin, but that was a few years
ago, and I don't work on Apple's X11)
Xinerama/PanoramiX/PseudoramiX all work the same way: there is only one
X11 Screen, and that Screen is a big rectangle that spans all of the
physical framebuffers. DefaultScreen() simply returns this big Screen;
as far as that part of the X11 API knows, there is no other Screen.
If the framebuffers have mismatched sizes, then some areas of the
Screen won't be backed by a framebuffer and will be "dead space".
Arranging the framebuffers this way is technically illegal*, but it is
rather common on Macs so it's desirable to make it work as well as
possible.
* XineramaDesign: "...for Xinerama purposes the configuration of
screens must be some sort of rectangle."
the program is making its appearance off screen (in the dead space
that the root window covers, but is not actually on a physical
screen), how do I fix it?
You can use the Xinerama API to find out where the physical
framebuffers are. XineramaGetData() returns an array of XRectangles,
one per framebuffer. Ideally the window manager would handle this for
you and move the window out of the dead space, but few WMs appear to
have this ability.
Xinerama API documentation:
http://sourceforge.net/project/showfiles.php?
group_id=22788&release_id=90641
--
Greg Parker email@hidden Java & Objective-C
_______________________________________________
x11-users mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/x11-users
X11 for Mac OS X FAQ: http://developer.apple.com/qa/qa2001/qa1232.html
Report issues, request features, feedback: http://developer.apple.com/bugreporter
Do not post admin requests to the list. They will be ignored.