diff options
author | torque <torque@1> | 2015-02-16 21:50:57 -0800 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-02-18 00:03:16 +0100 |
commit | 3b269ac0a04b7575a8ab1a6665d75fc0d0e8589e (patch) | |
tree | 9b637249e3225cebe664724280a30918c0e7a8a3 /video | |
parent | fa9b587426d7bd350d92afdb440c396336b2ecfd (diff) | |
download | mpv-3b269ac0a04b7575a8ab1a6665d75fc0d0e8589e.tar.bz2 mpv-3b269ac0a04b7575a8ab1a6665d75fc0d0e8589e.tar.xz |
input: add MOUSE_ENTER keybinding.
Signed-off-by: wm4 <wm4@nowhere>
Diffstat (limited to 'video')
-rw-r--r-- | video/out/cocoa/events_view.m | 3 | ||||
-rw-r--r-- | video/out/w32_common.c | 4 | ||||
-rw-r--r-- | video/out/wayland_common.c | 1 | ||||
-rw-r--r-- | video/out/x11_common.c | 5 |
4 files changed, 11 insertions, 2 deletions
diff --git a/video/out/cocoa/events_view.m b/video/out/cocoa/events_view.m index 620de19f84..d6ba9e0ff5 100644 --- a/video/out/cocoa/events_view.m +++ b/video/out/cocoa/events_view.m @@ -173,6 +173,9 @@ - (void)mouseEntered:(NSEvent *)event { [super mouseEntered:event]; + if ([self.adapter mouseEnabled]) { + [self.adapter putKey:MP_KEY_MOUSE_ENTER withModifiers:0]; + } } - (void)mouseExited:(NSEvent *)event diff --git a/video/out/w32_common.c b/video/out/w32_common.c index b788054070..1d82825294 100644 --- a/video/out/w32_common.c +++ b/video/out/w32_common.c @@ -696,8 +696,10 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, mp_input_put_key(w32->input_ctx, MP_KEY_MOUSE_LEAVE); break; case WM_MOUSEMOVE: { - if (!w32->tracking) + if (!w32->tracking) { w32->tracking = TrackMouseEvent(&w32->trackEvent); + mp_input_put_key(w32->input_ctx, MP_KEY_MOUSE_ENTER); + } // Windows can send spurious mouse events, which would make the mpv // core unhide the mouse cursor on completely unrelated events. See: // https://blogs.msdn.com/b/oldnewthing/archive/2003/10/01/55108.aspx diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 843049816e..2d09ad12b0 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -379,6 +379,7 @@ static void pointer_handle_enter(void *data, /* Release the left button on pointer enter again * because after moving the shell surface no release event is sent */ + mp_input_put_key(wl->vo->input_ctx, MP_KEY_MOUSE_ENTER); mp_input_put_key(wl->vo->input_ctx, MP_MOUSE_BTN0 | MP_KEY_STATE_UP); show_cursor(wl); } diff --git a/video/out/x11_common.c b/video/out/x11_common.c index dcac1788a3..50a4256c8f 100644 --- a/video/out/x11_common.c +++ b/video/out/x11_common.c @@ -934,6 +934,9 @@ int vo_x11_check_events(struct vo *vo) x11->win_drag_button1_down = false; mp_input_put_key(vo->input_ctx, MP_KEY_MOUSE_LEAVE); break; + case EnterNotify: + mp_input_put_key(vo->input_ctx, MP_KEY_MOUSE_ENTER); + break; case ButtonPress: if (Event.xbutton.button == 1) x11->win_drag_button1_down = true; @@ -1332,7 +1335,7 @@ static void vo_x11_map_window(struct vo *vo, struct mp_rect rc) // map window int events = StructureNotifyMask | ExposureMask | PropertyChangeMask | - LeaveWindowMask; + LeaveWindowMask | EnterWindowMask; if (mp_input_mouse_enabled(vo->input_ctx)) events |= PointerMotionMask | ButtonPressMask | ButtonReleaseMask; if (mp_input_vo_keyboard_enabled(vo->input_ctx)) |