diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index e486933e86..109e2dc4b0 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -315,6 +315,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_MOUSE_BTN0 | MP_KEY_STATE_UP); show_cursor(wl); } @@ -353,6 +354,9 @@ static void pointer_handle_button(void *data, mp_input_put_key(wl->vo->input_ctx, MP_MOUSE_BTN0 + (button - BTN_LEFT) | ((state == WL_POINTER_BUTTON_STATE_PRESSED) ? MP_KEY_STATE_DOWN : MP_KEY_STATE_UP)); + + if ((button == BTN_LEFT) && (state == WL_POINTER_BUTTON_STATE_PRESSED)) + wl_shell_surface_move(wl->window.shell_surface, wl->input.seat, serial); } static void pointer_handle_axis(void *data,