Re: Xinerama || Pseudoramix
Re: Xinerama || Pseudoramix
- Subject: Re: Xinerama || Pseudoramix
- From: John Davidorff Pell <email@hidden>
- Date: Wed, 30 Jul 2003 15:48:06 -0700
So you're the expert on Xinerama then? ;-)
I'm trying to use fspanel, which won't get moved by the WM anyway. it
explicitly disables that. I'm studying the calls that it uses (its
written entirely using XLib, no gtk+ or QT or anything) and its going
slowly. If I can figure out what makes it draw where it does, then i
can just change it to draw from the bottom of the physical screen (as
reported by XineramaGetData()) right?
If you are so inclined to help me out a little more, I'd really
appreciate it.
Thanx,
JP
P.S. fspanel is at http://www.chatjunkies.org/fspanel/ if you wanna
look at it. :-D thanx!
--
Every time you share on a P2P network, God kills a kitten.
Please think of the kittens.
On Wednesday, July 30, 2003, at 10:31 AM, Greg Parker wrote:
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.