From bce753060eb9fb99ebc64fb6027d130a37b918a6 Mon Sep 17 00:00:00 2001 From: torque Date: Mon, 16 Feb 2015 14:27:06 -0800 Subject: cocoa: update mouse coordinates when window is initialized. Make MpvEventsView -signalMousePosition a public method so it can be called without a compiler warning. Previously, the mouse position would be reported as (0,0) until the cursor was moved. --- video/out/cocoa/events_view.h | 1 + video/out/cocoa/events_view.m | 1 - video/out/cocoa_common.m | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/video/out/cocoa/events_view.h b/video/out/cocoa/events_view.h index a16a2d7d5a..3429563b4d 100644 --- a/video/out/cocoa/events_view.h +++ b/video/out/cocoa/events_view.h @@ -23,4 +23,5 @@ - (void)setFullScreen:(BOOL)willBeFullscreen; - (void)clear; - (BOOL)canHideCursor; +- (void)signalMousePosition; @end diff --git a/video/out/cocoa/events_view.m b/video/out/cocoa/events_view.m index d6ba9e0ff5..20d1307abf 100644 --- a/video/out/cocoa/events_view.m +++ b/video/out/cocoa/events_view.m @@ -28,7 +28,6 @@ @property(nonatomic, assign) BOOL clearing; @property(nonatomic, assign) BOOL hasMouseDown; @property(nonatomic, retain) NSTrackingArea *tracker; -- (void)signalMousePosition; - (BOOL)hasDock:(NSScreen*)screen; - (BOOL)hasMenubar:(NSScreen*)screen; - (int)mpvButtonNumber:(NSEvent*)event; diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index be67a60f5a..c2cc2ece43 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -455,6 +455,8 @@ static void create_ui(struct vo *vo, struct mp_rect *win, int geo_flags) view.adapter = adapter; s->view = view; [parent addSubview:s->view]; + // update the cursor position now that the view has been added. + [view signalMousePosition]; #if HAVE_COCOA_APPLICATION cocoa_register_menu_item_action(MPM_H_SIZE, @selector(halfSize)); @@ -572,7 +574,7 @@ int vo_cocoa_config_window(struct vo *vo, uint32_t flags, void *gl_ctx) } // trigger a resize -> don't set vo->dwidth and vo->dheight directly - // since this block is executed asynchrolously to the video + // since this block is executed asynchronously to the video // reconfiguration code. s->pending_events |= VO_EVENT_RESIZE; }); -- cgit v1.2.3