Commit 87937a2d authored by David Fuhrmann's avatar David Fuhrmann

macosx: fspanel: give up focus to the right fullscreen window

parent c2fedcc4
...@@ -958,7 +958,7 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -958,7 +958,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
// But this creates some problems when leaving fs over remote intfs, so activate app here. // But this creates some problems when leaving fs over remote intfs, so activate app here.
[NSApp activateIgnoringOtherApps:YES]; [NSApp activateIgnoringOtherApps:YES];
[o_fspanel setVoutWasUpdated: (int)[[self screen] displayID]]; [o_fspanel setVoutWasUpdated: self];
[o_fspanel setActive: nil]; [o_fspanel setActive: nil];
} }
......
...@@ -656,7 +656,7 @@ ...@@ -656,7 +656,7 @@
[o_fullscreen_window setAcceptsMouseMovedEvents: YES]; [o_fullscreen_window setAcceptsMouseMovedEvents: YES];
/* tell the fspanel to move itself to front next time it's triggered */ /* tell the fspanel to move itself to front next time it's triggered */
[[[VLCMainWindow sharedInstance] fsPanel] setVoutWasUpdated: (int)[[o_fullscreen_window screen] displayID]]; [[[VLCMainWindow sharedInstance] fsPanel] setVoutWasUpdated: o_fullscreen_window];
[[[VLCMainWindow sharedInstance] fsPanel] setActive: nil]; [[[VLCMainWindow sharedInstance] fsPanel] setActive: nil];
if ([self isVisible]) if ([self isVisible])
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/ *****************************************************************************/
@class VLCWindow;
@interface VLCFSPanel : NSWindow @interface VLCFSPanel : NSWindow
{ {
...@@ -36,6 +37,8 @@ ...@@ -36,6 +37,8 @@
BOOL b_displayed; BOOL b_displayed;
BOOL b_voutWasUpdated; BOOL b_voutWasUpdated;
int i_device; int i_device;
VLCWindow *o_vout_window;
} }
- (id)initWithContentRect: (NSRect)contentRect - (id)initWithContentRect: (NSRect)contentRect
styleMask: (NSUInteger)aStyle styleMask: (NSUInteger)aStyle
...@@ -70,7 +73,7 @@ ...@@ -70,7 +73,7 @@
- (void)mouseDown: (NSEvent *)theEvent; - (void)mouseDown: (NSEvent *)theEvent;
- (void)mouseDragged: (NSEvent *)theEvent; - (void)mouseDragged: (NSEvent *)theEvent;
- (void)setVoutWasUpdated: (int)i_screen; - (void)setVoutWasUpdated: (VLCWindow *)o_window;
@end @end
@interface VLCFSPanelView : NSView @interface VLCFSPanelView : NSView
......
...@@ -108,6 +108,10 @@ ...@@ -108,6 +108,10 @@
[hideAgainTimer invalidate]; [hideAgainTimer invalidate];
[hideAgainTimer release]; [hideAgainTimer release];
} }
if (o_vout_window)
[o_vout_window release];
[self setFadeTimer:nil]; [self setFadeTimer:nil];
[super dealloc]; [super dealloc];
} }
...@@ -236,12 +240,8 @@ ...@@ -236,12 +240,8 @@
- (void)mouseExited:(NSEvent *)theEvent - (void)mouseExited:(NSEvent *)theEvent
{ {
/* give up our focus, so the vout may show us again without letting the user clicking it */ /* give up our focus, so the vout may show us again without letting the user clicking it */
vout_thread_t *p_vout = getVout(); if (o_vout_window && var_GetBool(pl_Get(VLCIntf), "fullscreen"))
if (p_vout) { [o_vout_window makeKeyWindow];
if (var_GetBool(p_vout, "fullscreen"))
[[[[VLCMainWindow sharedInstance] videoView] window] makeKeyWindow];
vlc_object_release(p_vout);
}
} }
- (void)hideMouse - (void)hideMouse
...@@ -351,9 +351,13 @@ ...@@ -351,9 +351,13 @@
[self setFrameOrigin:point]; [self setFrameOrigin:point];
} }
- (void)setVoutWasUpdated: (int)i_newdevice; - (void)setVoutWasUpdated: (VLCWindow *)o_window
{ {
b_voutWasUpdated = YES; b_voutWasUpdated = YES;
if (o_vout_window)
[o_vout_window release];
o_vout_window = [o_window retain];
int i_newdevice = (int)[[o_vout_window screen] displayID];
if(i_newdevice != i_device) { if(i_newdevice != i_device) {
i_device = i_newdevice; i_device = i_newdevice;
[self center]; [self center];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment