Re: use of _NET_WM_STATE_FULLSCREEN



On Wed, 3 Feb 2010 11:44:11 -0500
MK <halfcountplus intergate com> wrote:
> On Wed, 03 Feb 2010 23:53:57 +1100
> Russell Shaw <rjshaw netspace net au> wrote:
> > MK wrote:
> > > I'm developing an openGL application and am having some trouble
> > > setting the window fullscreen.   Attached is the code I am using;
> > > the most relevent function is fullscreenEWMH(), which is about 45
> > > lines.
> > Use:
> >    long mask = 0;
> >    ...
> >    event.xclient.data.l[3] = 1;
> 
> That will work on fwvm, but not on metacity.  Using 0 for the mask
> will fail no matter what, and use of any value but 0 for data.l[3]
> seems to further restrict the masks which will work, it seems.  In
> any case, none of them work from within the application itself (altho
> they do in fvwm), only when called from an external process. Have you
> actually used this yourself?

Yeah.  The proper mask is  actually "SubstructureNotify|
SubstructureRedirect": 

http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2505751

I believe I made this observation about external vs. internal (and
fvwm) here too, so thanks for confirming that. Here's a quote from
someone at wm-spec (who are responsible for ewmh) about it:

"Quite possibly because the function opens a separate X connection for 
whatever reason, so maybe the event about changing the window state is
in fact sent before the main X connection is flushed and the event
creating the window is sent."

Not sure what I think of that since 1) it remains true after the window
is created as well (eg, with a repeatable fullscreen/unfullscreen
option), 2) I think would also be true in fwvm, but isn't. 

> The "Bad Request" reply may be an Xlib issue, since it also occurs
> under fwvm whether the request works or not.

That was my mistake, because of an inconsistency in xlib policy:
XSendEvent returns 1 unless the request *fails* (whereas xlib
functions generally return "Success" (0) or a positive integer for
errors).

Anyway, kind of surprised no one here has knowledge of any tried and
true  method to fullscreen a window in metacity.

-- 
MK <halfcountplus intergate com>


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