GNOME Bugzilla – Bug 414476
Add fullscreen monitors hint.
Last modified: 2008-11-17 02:59:52 UTC
We've been wrestling with this problem at VMware -- how to make a single window go fullscreen over a set of monitors. It appears to be impossible to do (at least, robustly, without ugly hacks and problems) with the current state of EWMH. I believe this would be useful to more than just VMware; for example, Blender's main window wants to cover the entire screen. On a single-head host, it goes to fullscreen, but with multiple heads it's beholden to the same sorts of sizing/placement glitches that are making my life hell. This patch adds a new hint to the window manager. It is currently called "VMWARE_FULLSCREEN_MONITORS", but I expect this to change -- I'm hesitant to name it _NET_WM_FULLSCREEN_MONITORS until I know more about how the EWMH standards process works.
Created attachment 83866 [details] [review] metacity implementation
Created attachment 83867 [details] test program which moves a fullscreen window around monitors on a dual-head system
I'd love to get reviews/comments on this quickly. If possible, it would be nice to enable conditional support for this in VMware Workstation 6, so we can point people to an unstable release of metacity when they inevitably run into trouble with the workaround hacks we've done. This would, of course, depend on a finalized specification of this property.
This all looks sane to me, but I don't know enough about the EWMH standards process to know what the best name for the atom should be. Havoc, Elijah: is it reasonable to have an atom named VMWARE_*? Maybe we could call it that for now and just wait and see where the standards process went.
This was just the first attempt -- I didn't want to name it something until the standards process finished (speaking of which, I should reply again on wm-spec-list...). My plan was always to rename it before this went in to metacity.
I'm Adding some reference notes to make sure this bug is more complete: See also the discussion of this feature on the wm-spec-list for inclusion in the EWMH, starting at http://mail.gnome.org/archives/wm-spec-list/2007-March/msg00002.html. (And while I'm at it, you should subscribe to the wm-spec-list, Thomas. That's where EWMH spec changes/questions/suggestions are posted)
(marking as needs-work since it's not a final version)
Created attachment 113378 [details] [review] Standardized implementation This now implements _NET_WM_FULLSCREEN_MONITORS as defined in EWMH
Created attachment 113379 [details] Test program Here's a new test program. It's in C because I couldn't figure out how to send a client message to the root window in PyGTK.
Can someone review the updated patch? I'd love to get this support in.
Created attachment 122703 [details] Updated Test program David's original test program didn't have a "return FALSE;" at the end of switch_monitors(), so I was getting more than one of the same monitor switch as I was implementing this functionality on KWin. I've also slowed down the iterations and added some debugging to explain what the user should be seeing as she's running the test program.
It seems good to me, though I don't have the setup to test it. I'll trust your results: committed.