diff --git a/tdekbdledsync/main.cpp b/tdekbdledsync/main.cpp index 0f4075694..1dbf7ef73 100644 --- a/tdekbdledsync/main.cpp +++ b/tdekbdledsync/main.cpp @@ -467,11 +467,15 @@ int main() { else { dev = udev_monitor_receive_device(mon); if (dev) { + int reload_keyboards = 0; if (strcmp(udev_device_get_action(dev), "add") == 0) { - // Reload keyboards - break; + reload_keyboards = 1; } if (strcmp(udev_device_get_action(dev), "remove") == 0) { + reload_keyboards = 1; + } + udev_device_unref(dev); + if( reload_keyboards ) { // Reload keyboards break; } @@ -507,5 +511,7 @@ int main() { } releaseLock(lockfd, lockFileName); + udev_monitor_unref(mon); + udev_unref(udev); return 0; }