From e303551745946ab49caf10c06425c1a7aee17fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Sun, 3 Sep 2023 12:11:39 +0200 Subject: [PATCH] backend: Ignore events without source_device for pointer visibility There can be events which don't not have source devices set on them, because they are not backed by real hardware and rather generated by us, for example IM events coming from the shell's OSK. So don't assume all events have a source device in update_pointer_visibility_from_event() and rather ignore those without one, as we are only interested in events coming from "real hardware" here. This fixes an issue where the mouse pointer would appear on devices without any input from actual mice/touchpads on OSK key presses. Fixes: 6aa42d6dadf Part-of: --- src/backends/meta-backend.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index 1a40caf53..a77b81581 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -1053,6 +1053,9 @@ update_pointer_visibility_from_event (MetaBackend *backend, g_warn_if_fail (!priv->in_init); device = clutter_event_get_source_device (event); + if (!device) + return; + device_type = clutter_input_device_get_device_type (device); time_ms = clutter_event_get_time (event);