src/cursor.c: Ignore out-of-surface movement for surfaces without views

This commit is contained in:
Consolatis 2022-05-25 21:46:47 +02:00 committed by Johan Malm
parent b24b9d2d23
commit 499df78531

View file

@ -297,13 +297,17 @@ process_cursor_motion(struct server *server, uint32_t time)
server->seat.pressed.surface != surface &&
!server->seat.drag_icon) {
/*
* Button has been pressed while over a view surface
* Button has been pressed while over another surface
* and is still held down. Just send the adjusted motion
* events to the focused surface so we can keep scrolling
* or selecting text even if the cursor moves outside of
* the surface.
*/
view = server->seat.pressed.view;
if (!view) {
/* Button press originated on a layer surface, just ignore */
return;
}
sx = server->seat.cursor->x - view->x;
sy = server->seat.cursor->y - view->y;
sx = sx < 0 ? 0 : (sx > view->w ? view->w : sx);