mirror of https://github.com/mpv-player/mpv
X11 window aspect patch by Arnaud Boulan <boulan@iie.cnam.fr>
adds 2 options: -keepaspect (default) and -nokeepaspect tested with icewm and enlightenment git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8693 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d2d5c0cf70
commit
76da393f98
|
@ -1376,6 +1376,12 @@ See also \-aspect for movie aspect.
|
|||
.B \-nograbpointer
|
||||
Do not grab mouse pointer after VidMode change (\-vm), useful for multihead
|
||||
setup.
|
||||
|
||||
.TP
|
||||
.B \-nokeepaspect
|
||||
Do not keep window aspect ratio when resizing X11 windows.
|
||||
(works currently only with \-vo x11, xv, xmga and xvidix)
|
||||
|
||||
.TP
|
||||
.B \-noslices
|
||||
Disable drawing video by 16-pixel height slices/\:bands, instead draws the
|
||||
|
|
|
@ -82,6 +82,7 @@ extern char *mDisplayName;
|
|||
extern int WinID;
|
||||
extern int ice_layer;
|
||||
extern int stop_xscreensaver;
|
||||
extern int vo_x11_keepaspect;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_AA
|
||||
|
@ -294,6 +295,8 @@ static config_t mplayer_opts[]={
|
|||
{"icelayer", &ice_layer, CONF_TYPE_INT, CONF_RANGE, 0, 15, NULL},
|
||||
{"stop_xscreensaver", &stop_xscreensaver, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"nostop_xscreensaver", &stop_xscreensaver, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
{"keepaspect", &vo_x11_keepaspect, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"nokeepaspect", &vo_x11_keepaspect, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_XINERAMA
|
||||
|
|
|
@ -387,6 +387,8 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
|
|||
} else
|
||||
if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height );
|
||||
|
||||
vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );
|
||||
|
||||
if ( vo_gc != None ) XFreeGC( mDisplay,vo_gc );
|
||||
vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
|
||||
XFlush(mDisplay);
|
||||
|
|
|
@ -80,6 +80,7 @@ static int vo_old_y = 0;
|
|||
static int vo_old_width = 0;
|
||||
static int vo_old_height = 0;
|
||||
|
||||
int vo_x11_keepaspect = 1;
|
||||
|
||||
#ifdef HAVE_XINERAMA
|
||||
int xinerama_screen = 0;
|
||||
|
@ -656,6 +657,15 @@ int vo_x11_check_events(Display *mydisplay){
|
|||
void vo_x11_sizehint( int x, int y, int width, int height, int max )
|
||||
{
|
||||
vo_hint.flags=PPosition | PSize | PWinGravity;
|
||||
if(vo_x11_keepaspect)
|
||||
{
|
||||
vo_hint.flags |= PAspect;
|
||||
vo_hint.min_aspect.x = width;
|
||||
vo_hint.min_aspect.y = height;
|
||||
vo_hint.max_aspect.x = width;
|
||||
vo_hint.max_aspect.y = height;
|
||||
}
|
||||
|
||||
vo_hint.x=x; vo_hint.y=y; vo_hint.width=width; vo_hint.height=height;
|
||||
if ( max )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue