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;
// But this creates some problems when leaving fs over remote intfs, so activate app here.
[NSApp activateIgnoringOtherApps:YES];
[o_fspanel setVoutWasUpdated: (int)[[self screen] displayID]];
[o_fspanel setVoutWasUpdated: self];
[o_fspanel setActive: nil];
}
......
......@@ -656,7 +656,7 @@
[o_fullscreen_window setAcceptsMouseMovedEvents: YES];
/* 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];
if ([self isVisible])
......
......@@ -22,6 +22,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
@class VLCWindow;
@interface VLCFSPanel : NSWindow
{
......@@ -36,6 +37,8 @@
BOOL b_displayed;
BOOL b_voutWasUpdated;
int i_device;
VLCWindow *o_vout_window;
}
- (id)initWithContentRect: (NSRect)contentRect
styleMask: (NSUInteger)aStyle
......@@ -70,7 +73,7 @@
- (void)mouseDown: (NSEvent *)theEvent;
- (void)mouseDragged: (NSEvent *)theEvent;
- (void)setVoutWasUpdated: (int)i_screen;
- (void)setVoutWasUpdated: (VLCWindow *)o_window;
@end
@interface VLCFSPanelView : NSView
......
......@@ -108,6 +108,10 @@
[hideAgainTimer invalidate];
[hideAgainTimer release];
}
if (o_vout_window)
[o_vout_window release];
[self setFadeTimer:nil];
[super dealloc];
}
......@@ -236,12 +240,8 @@
- (void)mouseExited:(NSEvent *)theEvent
{
/* give up our focus, so the vout may show us again without letting the user clicking it */
vout_thread_t *p_vout = getVout();
if (p_vout) {
if (var_GetBool(p_vout, "fullscreen"))
[[[[VLCMainWindow sharedInstance] videoView] window] makeKeyWindow];
vlc_object_release(p_vout);
}
if (o_vout_window && var_GetBool(pl_Get(VLCIntf), "fullscreen"))
[o_vout_window makeKeyWindow];
}
- (void)hideMouse
......@@ -351,9 +351,13 @@
[self setFrameOrigin:point];
}
- (void)setVoutWasUpdated: (int)i_newdevice;
- (void)setVoutWasUpdated: (VLCWindow *)o_window
{
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) {
i_device = i_newdevice;
[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