[vlc-commits] macosx vout: show complete window if we would resize beyond screen bounds

David Fuhrmann git at videolan.org
Sun Mar 4 13:13:17 CET 2012


vlc/vlc-2.0 | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Sun Mar  4 12:41:33 2012 +0100| [ddf35356d3c342c697e80f84cc3b220b6abc3c9b] | committer: Felix Paul Kühne

macosx vout: show complete window if we would resize beyond screen bounds

Make sure that if we would resize beyond the screen we set the origin values to ensure that the complete window is visible.

Signed-off-by: Felix Paul Kühne <fkuehne at videolan.org>
(cherry picked from commit 06f57d2bd7dd633d1ba731107b7cfc7048fc7e03)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.0.git/?a=commit;h=ddf35356d3c342c697e80f84cc3b220b6abc3c9b
---

 modules/video_output/macosx.m |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m
index b9b92d0..c8afeaf 100644
--- a/modules/video_output/macosx.m
+++ b/modules/video_output/macosx.m
@@ -355,7 +355,7 @@ static int Control (vout_display_t *vd, int query, va_list ap)
                 return VLC_SUCCESS; // this is okay, since the event will occur again when we have a window
             NSRect windowFrame = [o_window frame];
             NSRect glViewFrame = [sys->glView frame];
-            NSSize screenSize = [[o_window screen] visibleFrame].size;
+            NSRect screenFrame = [[o_window screen] visibleFrame];
             NSSize windowMinSize = [o_window minSize];
 
             topleftbase.x = 0;
@@ -371,12 +371,6 @@ static int Control (vout_display_t *vd, int query, va_list ap)
             if (i_height < windowMinSize.height)
                 i_height = windowMinSize.height;
 
-            /* make sure the window doesn't exceed the screen size the window is on */
-            if (i_width > screenSize.width)
-                i_width = screenSize.width;
-            if (i_height > screenSize.height)
-                i_height = screenSize.height;
-
             if( i_height != glViewFrame.size.height || i_width != glViewFrame.size.width )
             {
                 new_frame.size.width = windowFrame.size.width - glViewFrame.size.width + i_width;
@@ -385,6 +379,18 @@ static int Control (vout_display_t *vd, int query, va_list ap)
                 new_frame.origin.x = topleftscreen.x;
                 new_frame.origin.y = topleftscreen.y - new_frame.size.height;
 
+                /* make sure the window doesn't exceed the screen size the window is on */
+                if( new_frame.size.width > screenFrame.size.width )
+                {
+                    new_frame.size.width = screenFrame.size.width;
+                    new_frame.origin.x = screenFrame.origin.x;
+                }
+                if( new_frame.size.height > screenFrame.size.height )
+                {
+                    new_frame.size.height = screenFrame.size.height;
+                    new_frame.origin.y = screenFrame.origin.y;
+                }
+
                 [sys->glView performSelectorOnMainThread:@selector(setWindowFrameWithValue:) withObject:[NSValue valueWithRect:new_frame] waitUntilDone:NO];
             }
             [o_pool release];



More information about the vlc-commits mailing list