[320/906] fix position and content rect
authorJulien Isorce <julien.isorce@gmail.com>
Sat, 7 Mar 2009 02:13:38 +0000 (03:13 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:21 +0000 (19:31 +0000)
gst-libs/gst/gl/gstglwindow_cocoa.m

index bd77bd0..16c3242 100644 (file)
@@ -175,8 +175,8 @@ gst_gl_window_new (gint width, gint height)
   pool = [[NSAutoreleasePool alloc] init];
   [NSApplication sharedApplication];
 
-  rect.origin.x = x;
-  rect.origin.y = y;
+  rect.origin.x = 0;
+  rect.origin.y = 0;
   rect.size.width = width;
   rect.size.height = height;
 
@@ -184,6 +184,20 @@ gst_gl_window_new (gint width, gint height)
     styleMask: (NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask)
     backing: NSBackingStoreBuffered defer: NO screen: nil gstWin: priv];
 
+  if (priv->internal_win_id) {
+    NSRect mainRect = [[NSScreen mainScreen] visibleFrame];
+    GST_DEBUG ("main screen rect: %d %d %d %d", (int) mainRect.origin.x, (int) mainRect.origin.y, 
+      (int) mainRect.size.width, (int) mainRect.size.height);
+
+    NSRect windowRect = [priv->internal_win_id frame];
+    GST_DEBUG ("window rect: %d %d %d %d", (int) windowRect.origin.x, (int) windowRect.origin.y, 
+      (int) windowRect.size.width, (int) windowRect.size.height);
+
+    windowRect.origin.x += x;
+    windowRect.origin.y += mainRect.size.height > y ? (mainRect.size.height - y) * 0.5 : y;
+    [priv->internal_win_id setFrame:windowRect display:NO];
+  }
+
   [pool release];
 
   return window;