I’m about at my wits end, and don’t know where else to turn. My dear lazyweb, please come to my aid before I start crying.
I have a toplevel window. I wish to remove decorations, place it at a specific point on the screen, and give it a specific size. This arrangement is so I can have a single window covering multiple monitors in a xinerama configuration. This doesn’t seem like it should be so hard.
Doing this over a single monitor seems to work just fine, at least with metacity. My window happily goes “fullscreen”, covering the panel at the top, on the monitor I expect it to. Then, when trying to move_resize it to cover both of my heads, things get bad. Attempting to set it to 3200x1200+0+0 gives me a window which is 2721x1200+1600+0 (the minimum width as per gtk size request, correct height, bad X and correct Y). Note that this is transitioning from one screen to both.
Kwin does a little better. Depending on which head I attempt, it may go “fullscreen” on the wrong one initially, but it seems to work after that.
Setting this window as override-redirect causes all sorts of more-bogus behavior, so I’ve pretty much given up on that. Getting a new hint into EWMH for multi-head-fullscreen-windows is the correct thing to do, but I don’t have nearly enough time for that right now, and this has to work with current (and older…) window manager releases.
Help?
#1 by Jonathan Carter on March 3rd, 2007
Quote
Just for the record, it’s the “X Window System”, not X Windows
#2 by Havoc on March 3rd, 2007
Quote
You’re pretty much hosed — if override redirect doesn’t work and the window manager doesn’t understand what you want, then there’s little possible solution other than adding the new EWMH hint.
You might try tricking the WM by lying about the window type — try DOCK and set the KEEP_ABOVE state perhaps — though that could cause other problems/bogosity.
#3 by James on March 3rd, 2007
Quote
Metacity has some algorithm to stop windows resizing themselves over two screens. The algorithm checks to see if the user initiated the event by looking to see if the mouse is near the edge of the window. So you might be able to fake a mouse event or something. This is what I recall from a conversation on #gnome-hackers, try asking there for more details.
#4 by Richard Moore on March 4th, 2007
Quote
I think this might be worth having a new hint that would be shared across desktops like this.