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=9084b5fb4ed4901e115188abcf4701fb331d59cf;hb=9ba353983adc026b75a503c1381f6e5c8062f3e0;hpb=202630822f52e06dce8404633407329c38099278 diff --git a/src/logind-device.c b/src/logind-device.c index 9084b5fb4..bbd370fbf 100644 --- a/src/logind-device.c +++ b/src/logind-device.c @@ -22,7 +22,7 @@ #include #include -#include "logind.h" +#include "logind-device.h" #include "util.h" Device* device_new(Manager *m, const char *sysfs) { @@ -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); }