From bdf251e5654c860f7fa5841034638a89e4e41d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Fri, 29 May 2020 10:47:19 +0200 Subject: [PATCH] feedback-manager: Only act on add We would otherwise ignore the action when no vibra device was yet found. Make sure we release the old device when updating. --- src/fbd-feedback-manager.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fbd-feedback-manager.c b/src/fbd-feedback-manager.c index 8136756..8f052e0 100644 --- a/src/fbd-feedback-manager.c +++ b/src/fbd-feedback-manager.c @@ -74,11 +74,12 @@ device_changes (FbdFeedbackManager *self, gchar *action, GUdevDevice *device, g_debug ("Vibra device %s got removed", g_udev_device_get_sysfs_path (dev)); g_clear_object (&self->vibra); } - } else if (g_strcmp0 (action, "add") == 0 || !self->vibra) { + } else if (g_strcmp0 (action, "add") == 0) { if (!g_strcmp0 (g_udev_device_get_property (device, "FEEDBACKD_TYPE"), "vibra")) { g_autoptr (GError) err = NULL; g_debug ("Found hotplugged vibra device at %s", g_udev_device_get_sysfs_path (device)); + g_clear_object (&self->vibra); self->vibra = fbd_dev_vibra_new (device, &err); if (!self->vibra) g_warning ("Failed to init vibra device: %s", err->message);