X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogind-device.c;h=bbd370fbff75dc9721e6dc5bdae57795bbcb1a41;hp=4e076c20b63c7728e278aca8d31457cc69c3b35c;hb=9ba353983adc026b75a503c1381f6e5c8062f3e0;hpb=90821c935e5f4258dc21fc515cf721beb0914a85 diff --git a/src/logind-device.c b/src/logind-device.c index 4e076c20b..bbd370fbf 100644 --- a/src/logind-device.c +++ b/src/logind-device.c @@ -70,6 +70,7 @@ void device_detach(Device *d) { if (d->seat) LIST_REMOVE(Device, devices, d->seat->devices, d); + seat_add_to_gc_queue(d->seat); d->seat = NULL; } @@ -80,6 +81,6 @@ void device_attach(Device *d, Seat *s) { if (d->seat) device_detach(d); - LIST_PREPEND(Device, devices, d->seat->devices, d); d->seat = s; + LIST_PREPEND(Device, devices, s->devices, d); }