chiark / gitweb /
execute: make setup_pam() return -errno when possible
[elogind.git] / src / logind-device.c
index 9084b5fb4ed4901e115188abcf4701fb331d59cf..bbd370fbff75dc9721e6dc5bdae57795bbcb1a41 100644 (file)
@@ -22,7 +22,7 @@
 #include <assert.h>
 #include <string.h>
 
-#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);
 }