[openbox] xinerama/twinview mplayer fullscreen problem

Joaquin Aguirrezabalaga Espinosa joaquin.aguirrezabalaga at hispalinux.es
Tue Nov 30 04:28:02 EST 2004


El lun, 29-11-2004 a las 18:42 -0800, Marc Wilson escribió:
> You keep saying that, but I've never seen this behavior.  I read your
> patch, but I couldn't see the point to it.

I'll try again to explain my point. First, this problem just occurs
using xinerama (well, I use nVidia's twinview but think the behaviour
should be the same using 'normal' xinerama). With only one head I could
see mplayer and any other apps perfectly in fullscreen mode.

Now back to xinerama. In my case I have two heads, both configured at
1280x1024 res.

If I put any window in the second head into fullscreen mode, that window
resizes to occupy that heads full area (1280x1024), leaving the other
head's area free for working with other windows. (That's the behaviour I
want for both heads)

In the case of the main head, if a window is put into fullscreen mode,
that window resizes to occupy the area of both heads (2560x1024). That
gives problems with mplayer, xawtv, xine and so on programs that don't
'want' to expand accross various heads, leaving one screen black or
white.

My patch defines an option (xineramaFullview) that if defined to 'no'
makes windows in the main head behave as in the first case, resizing to
one head's full area (1280x1024), and no to both's (2560x1024).

Now, looking at the code, we see the code to put windows into fullscreen
mode is different in the case the window is in the primary head, or in
secondary heads. I wanted all windows behave as in secondary heads and
so put a configuration variable, that if defined to 'no' forced all
windows to behave as in secondary windows.


/* from openbox/client.c */
#ifdef VIDMODE
        if (i == 0 && /* primary head */
            /* I added this condition, so it never enters this 'if', and
behaves always like in secondary heads */
            config_resize_xinerama_fullscreen &

            extensions_vidmode &&
            XF86VidModeGetViewPort(ob_display, ob_screen, &x, &y) &&
            /* get the mode last so the mode.privsize isnt freed
incorrectly */
            XF86VidModeGetModeLine(ob_display, ob_screen, &dot, &mode))
{
            x += a->x;
            y += a->y;
            /* This is what gave problems for me */
            w = mode.hdisplay;
            h = mode.vdisplay;
            if (mode.privsize) XFree(mode.private);
        } else
#endif
        { /* Secondary heads */
            x = a->x;
            y = a->y;
            w = a->width;
            h = a->height;
        }


If xineramaFullscreen is not defined to 'no' in your rc.xml, the default
behavior is the one openbox now uses.

I hope this clears what I wanted to do with the patch.

-- 
Joaquín Aguirrezabalaga Espinosa
email: joaquin.aguirrezabalaga at hispalinux.es
web:   http://kinote.homelinux.net/

Utiliza GnuPG o PGP si quieres contactar conmigo de manera segura.
Clave pública: http://kinote.homelinux.net/kinote.asc
Fingerprint:   6CD2 1463 C967 414F 4433 7290 98F3 2137 3A92 33C8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje est? firmada	digitalmente
URL: <http://icculus.org/pipermail/openbox/attachments/20041130/e287c0b7/attachment.pgp>


More information about the openbox mailing list