From 76da393f9842750782dc3e8c7a265efe654dda3a Mon Sep 17 00:00:00 2001 From: attila Date: Wed, 1 Jan 2003 12:02:49 +0000 Subject: X11 window aspect patch by Arnaud Boulan 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 --- libvo/vo_xv.c | 2 ++ libvo/x11_common.c | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'libvo') diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c index cdfaf90adb..0395330930 100644 --- a/libvo/vo_xv.c +++ b/libvo/vo_xv.c @@ -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); diff --git a/libvo/x11_common.c b/libvo/x11_common.c index 7c674cfa4d..9cd5bee3c7 100644 --- a/libvo/x11_common.c +++ b/libvo/x11_common.c @@ -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 ) { -- cgit v1.2.3