Commit 581319a1 authored by Sam Hocevar's avatar Sam Hocevar

* ./plugins/x11/xcommon.c: fixed x11 and xvideo alternate fullscreen (gibalou

    on t'aiiiiiiiiimeuh).
parent 50e52624
List of known vlc bugs $Id: BUGS,v 1.12 2002/05/19 16:01:26 massiot Exp $
List of known vlc bugs $Id: BUGS,v 1.13 2002/05/20 22:30:19 sam Exp $
Please try to keep this file up to date. Also, grep for FIXME in the
source files for more and more bugs to fix.
......@@ -36,9 +36,6 @@ Video output:
* On-the-fly resizing when using a chroma transformation doesn't work for
all plugins. Currently it is only implemented for x11 and SDL.
* The alternate_fullscreen method of the x11 and xvideo plugins will
sometimes not switch to fullscreen.
Chroma transformations:
* Most chroma transformation modules completely ignore margins.
......
......@@ -9,6 +9,8 @@ HEAD
0.4.0
Mon, 20 May 2002 22:53:48 +0200
* ./configure.in: tried to fix the -lavcodec detection.
* ./plugins/x11/xcommon.c: fixed x11 and xvideo alternate fullscreen.
* ./plugins/network/ipv6.c: experimental support for Windows IPv6
* ./plugins/a52/a52.c: added an option to disable the dynamic range
compression.
......
......@@ -2,7 +2,7 @@
* xcommon.c: Functions common to the X11 and XVideo plugins
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: xcommon.c,v 1.33 2002/05/18 17:47:47 sam Exp $
* $Id: xcommon.c,v 1.34 2002/05/20 22:30:19 sam Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
......@@ -1415,7 +1415,6 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
Atom prop;
mwmhints_t mwmhints;
int i_xpos, i_ypos, i_width, i_height;
XEvent xevent;
XSetWindowAttributes attributes;
p_vout->b_fullscreen = !p_vout->b_fullscreen;
......@@ -1543,35 +1542,18 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
/* We need to unmap and remap the window if we want the window
* manager to take our changes into effect */
XUnmapWindow( p_vout->p_sys->p_display, p_vout->p_sys->window);
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( xevent.type != UnmapNotify )
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
XMapRaised( p_vout->p_sys->p_display, p_vout->p_sys->window);
while( xevent.type != MapNotify )
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
XReparentWindow( p_vout->p_sys->p_display,
p_vout->p_sys->window,
DefaultRootWindow( p_vout->p_sys->p_display ),
0, 0 );
XSync( p_vout->p_sys->p_display, True );
XMoveResizeWindow( p_vout->p_sys->p_display,
p_vout->p_sys->window,
i_xpos,
i_ypos,
i_width,
i_height );
/* Purge all ConfigureNotify events, this is needed to fix a bug where we
* would lose the original size of the window */
while( xevent.type != ConfigureNotify )
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( XCheckWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent ) );
XSync( p_vout->p_sys->p_display, True );
/* We need to check that the window was really restored where we wanted */
if( !p_vout->b_fullscreen )
......@@ -1598,16 +1580,7 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
p_vout->p_sys->i_xpos_backup_2,
p_vout->p_sys->i_ypos_backup_2 );
/* Purge all ConfigureNotify events, this is needed to fix a bug
* where we would lose the original size of the window */
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( xevent.type != ConfigureNotify )
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( XCheckWindowEvent( p_vout->p_sys->p_display,
p_vout->p_sys->window,
StructureNotifyMask, &xevent ) );
XSync( p_vout->p_sys->p_display, True );
}
/* Check the size */
......@@ -1630,20 +1603,11 @@ static void ToggleFullScreen ( vout_thread_t *p_vout )
p_vout->p_sys->i_width_backup_2,
p_vout->p_sys->i_height_backup_2 );
/* Purge all ConfigureNotify events, this is needed to fix a bug
* where we would lose the original size of the window */
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( xevent.type != ConfigureNotify )
XWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask, &xevent );
while( XCheckWindowEvent( p_vout->p_sys->p_display,
p_vout->p_sys->window,
StructureNotifyMask, &xevent ) );
XSync( p_vout->p_sys->p_display, True );
}
}
if( p_vout->p_sys->b_altfullscreen )
if( p_vout->p_sys->b_altfullscreen && p_vout->b_fullscreen )
XSetInputFocus(p_vout->p_sys->p_display,
p_vout->p_sys->window,
RevertToParent,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment