From cdedd2b53e08acebb8abf21cf2a2d84ab440aaa0 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Wed, 14 Sep 2016 14:15:24 +0200 Subject: [PATCH] manager: emit device-removed signal when a device unrealizes The 'device-added' and 'device-removed' signals indicate when the value of the 'Devices' property changes. The property only returns realized devices and so if a device unrealizes we should emit the removed signal for it. Fixes: 5da37a129c25350e6f5041726a23d4d9f8318762 https://bugzilla.gnome.org/show_bug.cgi?id=771324 --- src/nm-manager.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index 9ad6517dfc..836ab76857 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -1868,8 +1868,10 @@ device_realized (NMDevice *device, GParamSpec *pspec, NMManager *self) { + gboolean real = nm_device_is_real (device); + /* Emit D-Bus signals */ - g_signal_emit (self, signals[DEVICE_ADDED], 0, device); + g_signal_emit (self, signals[real ? DEVICE_ADDED : DEVICE_REMOVED], 0, device); _notify (self, PROP_DEVICES); } @@ -6045,7 +6047,8 @@ nm_manager_class_init (NMManagerClass *manager_class) NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_OBJECT); - /* D-Bus exported; emitted only for realized devices */ + /* D-Bus exported; emitted only for realized devices when a device + * becomes unrealized or removed */ signals[DEVICE_REMOVED] = g_signal_new (NM_MANAGER_DEVICE_REMOVED, G_OBJECT_CLASS_TYPE (object_class),