diff --git a/src/servers/input/InputServer.cpp b/src/servers/input/InputServer.cpp index ad8b84e169..a0e389a0fa 100644 --- a/src/servers/input/InputServer.cpp +++ b/src/servers/input/InputServer.cpp @@ -1426,7 +1426,7 @@ InputServer::StartStopDevices(const char *name, input_device_type type, bool doS if (!item) continue; - if ((name && strcmp(name, item->mDev.name) == 0) || item->mDev.type == type) { + if ((name && strcmp(name, item->mDev.name) == 0) || (!name && item->mDev.type == type)) { if (!item->mIsd) return B_ERROR; diff --git a/src/servers/input/InputServerDevice.cpp b/src/servers/input/InputServerDevice.cpp index d05c56019e..bda11d7cd0 100644 --- a/src/servers/input/InputServerDevice.cpp +++ b/src/servers/input/InputServerDevice.cpp @@ -169,7 +169,7 @@ BInputServerDevice::RegisterDevices(input_device_ref **devices) if (!found) { PRINT(("RegisterDevices not found %s\n", device->name)); InputServer::gInputDeviceList.AddItem(new InputDeviceListItem(this, *device) ); - Start(device->name, device->cookie); + InputServer::StartStopDevices(this, true); } else { PRINT(("RegisterDevices found %s\n", device->name)); }