That makes sense to me, but also prompts me to make an additional point about 
this property:  why is not specified as a conventional window hint, as well a 
client message to request a change? 

The only way I was able to get this to work with Metacity was to map the 
window, pause a little with XSync() and then follow up with the client message. 
 That does work fine, but means there is a race that could cause a flicker as 
the window is first mapped on the WM's chosen default monitor and then moved.  
Specifying it in the same way as _NET_WM_STATE, as both an initial property 
before initial (or first post-withdrawal) mapping, and a client message to 
change, would fix that and seems more consistent and logical.

Giles

From: wm-spec-list-boun...@gnome.org [mailto:wm-spec-list-boun...@gnome.org] On 
Behalf Of Jason 'vanRijn' Kasper
Sent: 05 November 2009 22:32
To: wm-spec-list@gnome.org
Subject: 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 ]-
_______________________________________________
wm-spec-list mailing list
wm-spec-list@gnome.org
http://mail.gnome.org/mailman/listinfo/wm-spec-list

Reply via email to