From da26deaa5c843ef303ef9f1b9f0cd3d341c5c5f5 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 22 Feb 2023 21:35:26 +0200 Subject: [PATCH] backends/libinput: Fix crash upon receiving motion absolute events The input events can be processed when the workspace is not available, e.g. during startup or shutdown, so add a corresponding guard. As a long term plan, we need to decouple Workspace from low-level input backend parts, but it will be a too invasive change for now. BUG: 449317 BUG: 465456 --- src/backends/libinput/connection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backends/libinput/connection.cpp b/src/backends/libinput/connection.cpp index f99771d9b1..db1a19b687 100644 --- a/src/backends/libinput/connection.cpp +++ b/src/backends/libinput/connection.cpp @@ -373,7 +373,9 @@ void Connection::processEvents() } case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: { PointerEvent *pe = static_cast(event.get()); - Q_EMIT pe->device()->pointerMotionAbsolute(pe->absolutePos(workspace()->geometry().size()), pe->time(), pe->device()); + if (workspace()) { + Q_EMIT pe->device()->pointerMotionAbsolute(pe->absolutePos(workspace()->geometry().size()), pe->time(), pe->device()); + } break; } case LIBINPUT_EVENT_TOUCH_DOWN: { -- GitLab