diff libvo/vo_quartz.c @ 13779:a03e87034921

fix windows resizing ui glitch
author nplourde
date Wed, 27 Oct 2004 21:20:11 +0000
parents efefaa53aaf9
children e047e70a9767
line wrap: on
line diff
--- a/libvo/vo_quartz.c	Wed Oct 27 20:05:48 2004 +0000
+++ b/libvo/vo_quartz.c	Wed Oct 27 21:20:11 2004 +0000
@@ -10,7 +10,7 @@
 	MPlayer Mac OSX Quartz video out module.
 	
 	todo:	-screen overlay output
-			-Enable live resize
+			-Add sub-option to select fullscreen resolution
 			-RGB32 lost HW accel in fullscreen
 			-(add sugestion here)
  */
@@ -534,6 +534,7 @@
 	windowAttrs =   kWindowStandardDocumentAttributes
 					| kWindowStandardHandlerAttribute
 					| kWindowMetalAttribute
+					| kWindowCompositingAttribute
 					| kWindowLiveResizeAttribute;
 					
  	if (theWindow == NULL)
@@ -555,6 +556,9 @@
 		SizeWindow (theWindow, d_width, d_height, 1);
  	}
 	
+	//Show window
+	RepositionWindow(theWindow, NULL, kWindowCascadeOnMainScreen);
+	ShowWindow (theWindow);
 	SetPort(GetWindowPort(theWindow));
 	
 	switch (image_format) 
@@ -717,10 +721,6 @@
 		}
 		break;
 	}
-
-	//Show window
-	RepositionWindow(theWindow, NULL, kWindowCascadeOnMainScreen);
-	ShowWindow (theWindow);
 	
 	if(vo_fs)
 		window_fullscreen();
@@ -1071,6 +1071,7 @@
 	uint32_t d_height;
 	
 	Rect tmpRect;
+	CGRect tmpBounds;
 
 	GetPortBounds( GetWindowPort(theWindow), &winRect );
 
@@ -1091,17 +1092,16 @@
 	}
 
 	//Clear Background
+	tmpBounds = CGRectMake( 0, border, winRect.right, winRect.bottom);
 	CreateCGContextForPort(GetWindowPort(theWindow),&context);
-	CGRect winBounds = CGRectMake( 0, border, winRect.right, winRect.bottom);
 	CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);
-	CGContextFillRect(context, winBounds);
-	CGContextFlush(context);
+	CGContextFillRect(context, tmpBounds);
 	
 	switch (image_format)
 	{
 		case IMGFMT_RGB32:
 		{
-			bounds = CGRectMake(dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top);
+			bounds = CGRectMake(dstRect.left, dstRect.top+border, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top);
 			CreateCGContextForPort (GetWindowPort (theWindow), &context);
 			break;
 		}
@@ -1197,5 +1197,4 @@
  		vo_quartz_fs = 0;
 	}
 	
-	window_resized();
 }