From 0284956ce8e85fc94ece88fa474646a0d0e99d5e Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Wed, 25 May 2022 21:46:47 +0200 Subject: [PATCH] src/cursor.c: Ignore out-of-surface movement for surfaces without views Backport of 499df7853131d4c4ac382c819d1fc01e77b32b66 --- src/cursor.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cursor.c b/src/cursor.c index 8d322483..fba83f6b 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -300,13 +300,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);