xwayland: Handle race between multi-pointer motion and clicks

Make sure we're looking at the right location.  The frame could have
received a motion event from a pointer from a different wl_seat, but
under X it looks like our core pointer moved.  Move the frame pointer
to the button press location before deciding what to do.
diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index dd0118e..a7afd84 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -1629,6 +1629,13 @@
 		FRAME_BUTTON_PRESSED : FRAME_BUTTON_RELEASED;
 	button_id = button->detail == 1 ? BTN_LEFT : BTN_RIGHT;
 
+	/* Make sure we're looking at the right location.  The frame
+	 * could have received a motion event from a pointer from a
+	 * different wl_seat, but under X it looks like our core
+	 * pointer moved.  Move the frame pointer to the button press
+	 * location before deciding what to do. */
+	location = frame_pointer_motion(window->frame, NULL,
+					button->event_x, button->event_y);
 	location = frame_pointer_button(window->frame, NULL,
 					button_id, button_state);
 	if (frame_status(window->frame) & FRAME_STATUS_REPAINT)