diff --git a/sway/input/cursor.c b/sway/input/cursor.c index b336fcbc..b9643535 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -807,6 +807,8 @@ static void check_constraint_region(struct sway_cursor *cursor) { wlr_cursor_warp_closest(cursor->cursor, NULL, sx + con->content_x - view->geometry.x, sy + con->content_y - view->geometry.y); + + cursor_rebase(cursor); } } } diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c index 32c7318b..048bad75 100644 --- a/sway/input/seatop_default.c +++ b/sway/input/seatop_default.c @@ -656,6 +656,7 @@ static void handle_rebase(struct sway_seat *seat, uint32_t time_msec) { if (surface) { if (seat_is_input_allowed(seat, surface)) { wlr_seat_pointer_notify_enter(seat->wlr_seat, surface, sx, sy); + wlr_seat_pointer_notify_motion(seat->wlr_seat, time_msec, sx, sy); } } else { cursor_update_image(cursor, e->previous_node);