* vout.m: MacOS X video output plugin
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
- * $Id: vout.m,v 1.37 2003/03/06 11:43:07 hartman Exp $
+ * $Id: vout.m,v 1.38 2003/03/06 12:52:32 hartman Exp $
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
- (void)scaleWindowWithFactor: (float)factor
{
NSSize newsize;
- int i_corrected_height;
+ int i_corrected_height, i_corrected_width;
NSPoint topleftbase;
NSPoint topleftscreen;
topleftbase.y = [self frame].size.height;
topleftscreen = [self convertBaseToScreen: topleftbase];
- i_corrected_height = p_vout->output.i_width * VOUT_ASPECT_FACTOR /
+ if( p_vout->output.i_height * p_vout->output.i_aspect <
+ p_vout->output.i_width * VOUT_ASPECT_FACTOR )
+ {
+ i_corrected_width = p_vout->output.i_height * p_vout->output.i_aspect /
+ VOUT_ASPECT_FACTOR;
+ newsize.width = (int) ( i_corrected_width * factor );
+ newsize.height = (int) ( p_vout->render.i_height * factor );
+ }
+ else
+ {
+ i_corrected_height = p_vout->output.i_width * VOUT_ASPECT_FACTOR /
p_vout->output.i_aspect;
- newsize.width = (int) ( p_vout->render.i_width * factor );
- newsize.height = (int) ( i_corrected_height * factor );
+ newsize.width = (int) ( p_vout->render.i_width * factor );
+ newsize.height = (int) ( i_corrected_height * factor );
+ }
+
[self setContentSize: newsize];
[self setFrameTopLeftPoint: topleftscreen];