Need to provide a way to disable _NET_WM_FULLSCREEN_MONITORS hint



re, all.

The EWMH spec does not provide a way to disable or "turn off" the _NET_WM_FULLSCREEN_MONITORS hint. In other words, whatever 4 monitor indices were last used for a fullscreen window will continue to be used ad infinitum, and the only current recourse for an app that has set this hint is to keep setting it every time it wants to fullscreen, even if it's only on a single head.

I've done a bit of testing with 2 heads and the latest Compiz, KWin, and Metacity window managers and it looks like it's possible to at least confuse these WMs into not using previous monitor indices for _NET_WM_FULLSCREEN_MONITORS by passing a -1 (0xFFFFFFFF) for the 4 monitor indices. I think what this is really doing is providing an invalid monitor index that doesn't (and can't possibly) exist in Xinerama, so it's ending up being not used by the WMs.

I'd like to propose that an addition be made to the EWMH spec that makes this the official route to asking the WM to disable the _NET_WM_FULLSCREEN_MONITORS hint for a given window. It seems to follow the spirit of both the existing _NET_WM_FULLSCREEN_MONITORS section as well as _NET_WM_DESKTOP (via using 0xFFFFFFFF as an otherwise invalid and special index).

I'd like to provide a patch to the spec to provide a way to completely turn off and disable the _NET_WM_FULLSCREEN_MONITORS after it's been set. I will provide a patch to the EWMH XML file (is wm-spec-1.4.xml the right one?), but before I do that, I wanted to check with the group on my approach. Does this approach (passing 0xFFFFFFFF as monitor indices in the XClientMessageEvent that is sent to the root window) sound good to everyone? Or would it be preferable to use a different approach?

The advantage I see to doing it this way would mean that what currently works via sending an invalid monitor index would be made the official spec standard and require only minor patches to the implementing WM's to document this as opposed to using some other mechanism which would require more intrusive rework.

Thanks in advance, all! =:)

--
-[ Jason 'vanRijn' Kasper    //  http://movingparts.net ]-
-[ KDE PIM Developer         //  http://www.kde.org  ]-
-[ bash fun -> :(){ :|:&};:  //  Numbers 6:22-26 ]-


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]