HI Cedric,

I have just merged your changes for fullscreen toggling.  My kde
desktop behaves fine with the changes, I don't have a machine with
gnome running right now so I'll test it later once I get that machine
updated with the latest OSG.

Cheers,
Robert.

On Oct 8, 2007 12:38 PM, Cedric Pinson <[EMAIL PROTECTED]> wrote:
>
>
> Leif Delgass wrote:
> > I've tested the Motif hint for removing decorations and yes it works
> > fine under GNOME/metacity (metacity version is 2.14.3).  However, to
> > get a top-level window above the panels for fullscreen, you need the
> > fullscreen EWMH hint (which changes the window size, stacking, and
> > decorations).    When setting the fullscreen state, turning off
> > decorations with the Motif hint is redundant, but doesn't hurt.  To
> > turn decorations on and off for a non-fullscreen window, the Motif
> > hint is still necessary.
> >
> Yes i have same behaviour here too with metacity 2.18.5
> > Toggling fullscreen/windowed was failing without the fullscreen hint
> > because the resize request is overriden by metacity and the
> > "fullscreen" window ends up smaller than the screen, which in turn
> > confuses the WindowSizeHandler.  Perhaps it would be more robust to
> > keep an internal flag indicating the current (requested) fullscreen
> > state rather than examining the window dimensions for the purpose of
> > toggling fullscreen?
> >
> In my opinion it's better to manage fullscreen as a different 'mode'.
> and add
> function virtual function in the GraphicWindow and save the flag in the
> Trait.
> I re enabled the MOTIF hint to have the same functionnality as before
> because
> i believed it was a problem, but as you said it works.
> > It also may be better to have the window size traits and GL context
> > updated with the actual dimensions from the ConfigureNotify event.
> > Since the GraphicsWindow's setWindowRectangle() calls resized(), this
> > would probably mean blocking until the event is received in the
> > setWindowRectangleImplementation.  I'm not sure if this would need a
> > timeout though -- it may be possible that no event will come back if
> > the window manager refuses the request.  If the resized() call was
> > moved to the platform-specific implementations, then I think the X11
> > implementation could just let checkEvents() handle the ConfigureNotify
> > so it wouldn't have to block or assume a request will succeed in
> > setWindowRectangleImplementation.  I'm not sure if there would be side
> > effects to making setWindowRectangle asynchronous in this way though.
> > Regarding the sleep:  I tried taking out the sleep and so far the only
> > X error I've seen was on XSetInputFocus() which failed with a BadMatch
> > error because the window wasn't visible at the time of the call (could
> > be because the window was not mapped or was obscured).
> >
> You mean the robust way to do that is to do things when we received
> event from X
> right ?
> > Also, one thing I haven't tested yet with the fullscreen hint: what
> > happens in a Xinerama or merged framebuffer (TwinView) setup?  I think
> > some window managers may try to maximize windows to the physical
> > display rather than over the full desktop in that case.
> >
> I can't test that too.
> > Anyway, I hope this helps and doesn't confuse things too much more. ;)
> >  Unfortunately, I have some work deadlines that prevent me from diving
> > into the details right now, but I'll try to help out as time permits.
> >
> >
> Thank you for your report, i put a new patch as attachement. I will rework
> on it later
>
>
> > Leif
> >
> > On 10/6/07, Robert Osfield <[EMAIL PROTECTED]> wrote:
> >
> >> HI Leif,
> >>
> >> I'm curious about you comments.  Is it your belief that MotifHints
> >> should work fine under Gnome?  Is it just the internal response to the
> >> resize that you believe is the issue?   Removing the usleep() and
> >> relying on the configure event sounds plausible solution.
> >>
> >> Robert.
> >>
> >> On 10/4/07, Leif Delgass <[EMAIL PROTECTED]> wrote:
> >>
> >>> On 10/4/07, Cedric Pinson <[EMAIL PROTECTED]> wrote:
> >>>
> >>>> Hi
> >>>> It's a patch to have fullscreen toggle working on gnome, it concerns
> >>>> only X11 implementation.
> >>>> the problem:
> >>>> when i run osgviewer i can't go in windowed mode. When i want to go in
> >>>> windowed mode the screen flash i see the viewport (only the gl viewport
> >>>> not the window) to have the size of the window size asked by osg and the
> >>>> frame after. It fails and rest in fullscreen. After some test i saw that
> >>>> the problem was the MOTIF decoration setup. Metacity seems to not handle
> >>>> correctly the window if there is no decoration.
> >>>>
> >>>> answer:
> >>>> The idea is to not use the MOTIF decoration setup, and to send an ICCM
> >>>> fullscreen event when it's appropriate. It means if the window has the
> >>>> size of the screen and the decoration wanted is false then we send the
> >>>> fullscreen event, else we send the event to disable the fullscreen mode.
> >>>> The problem of this method is you can't have a window in a windowed
> >>>> mode  without decoration. It's not a perfect solution.
> >>>>
> >>>> I tested it with compositviewer and osgviewer and it works great. I know
> >>>> that most of WM now use ICCM features so i hope it will not be a problem
> >>>> on other WM. Some feedback will be appreciate on others windows manager.
> >>>>
> >>>> Thanks to [EMAIL PROTECTED] for the piece of code.
> >>>>
> >>>>
> >>>> Cheers
> >>>>
> >>>>
> >>>> --
> >>>> +33 (0) 6 63 20 03 56  Cedric Pinson mailto:[EMAIL PROTECTED] 
> >>>> http://www.plopbyte.net
> >>>>
> >>> Hi Cedric,
> >>>
> >>> I have some comments on the changes:  I don't believe the motif hints
> >>> are the problem per se, but your original comment about the
> >>> isFullScreen test in ViewerEventHandlers is correct.  The motif
> >>> decoration hints actually do work for me with GNOME/metacity, and can
> >>> be used to get a non-fullscreen, undecorated window.  The problem is
> >>> that when you remove decorations and attempt to resize the window to
> >>> fullscreen without using the fullscreen hint, metacity makes the
> >>> window smaller than screen size to account for the panels.  The
> >>> toggleFullscreen in ViewerEventHandlers then fails to recognize that
> >>> the window is "fullscreen" since the window manager modified the
> >>> requested window size, so toggleFullscreen tries to make the window
> >>> fullscreen on every toggle.
> >>>
> >>> The behavior you saw with the GL viewport not matching the window size
> >>> is probably a consequence of the way resizing is implemented in
> >>> GraphicsWindowX11.  The setWindowRectangleImplementation assumes it
> >>> will get the requested size and adds a usleep to wait for the window
> >>> manager.  I think this is a hack around the asynchronous nature of
> >>> Xlib.  Really, the resize should not be assumed to work and should not
> >>> be acted on (resizing the GL context) until a ConfigureNotify event is
> >>> received with the actual new size of the window.  The window manager
> >>> can refuse the resize altogether or it can resize to a different size
> >>> than was requested.
> >>>
> >>> --
> >>> Leif Delgass
> >>> [EMAIL PROTECTED]
> >>> _______________________________________________
> >>> osg-submissions mailing list
> >>> [email protected]
> >>> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
> >>>
> >>>
> >> _______________________________________________
> >> osg-submissions mailing list
> >> [email protected]
> >> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
> >>
> >>
> > _______________________________________________
> > osg-submissions mailing list
> > [email protected]
> > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
> >
>
> --
>
> +33 (0) 6 63 20 03 56  Cedric Pinson mailto:[EMAIL PROTECTED] 
> http://www.plopbyte.net
>
>
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to