Fix of 3DConnexion 3D SpaceMouse Jumpy Pan moves on Linux #5233
Also improved error reporting on Linux about the 3DConnexion device access issues.
This commit is contained in:
parent
d59f345fbb
commit
aa8f97fce2
@ -346,7 +346,6 @@ bool Mouse3DController::State::apply(const Mouse3DController::Params ¶ms, Ca
|
||||
if (params.swap_yz)
|
||||
rot = Vec3d(rot.x(), -rot.z(), rot.y());
|
||||
camera.rotate_local_around_target(Vec3d(rot.x(), - rot.z(), rot.y()));
|
||||
break;
|
||||
} else {
|
||||
assert(input_queue_item.is_buttons());
|
||||
switch (input_queue_item.type_or_buttons) {
|
||||
@ -895,7 +894,10 @@ bool Mouse3DController::connect_device()
|
||||
if (device.second.size() == 1) {
|
||||
#if defined(__linux__)
|
||||
hid_device* test_device = hid_open(device.first.first, device.first.second, nullptr);
|
||||
if (test_device != nullptr) {
|
||||
if (test_device == nullptr) {
|
||||
BOOST_LOG_TRIVIAL(error) << "3DConnexion device cannot be opened: " << device.second.front().path <<
|
||||
" You may need to update /etc/udev/rules.d";
|
||||
} else {
|
||||
hid_close(test_device);
|
||||
#else
|
||||
if (device.second.front().has_valid_usage()) {
|
||||
@ -940,10 +942,13 @@ bool Mouse3DController::connect_device()
|
||||
break;
|
||||
}
|
||||
#endif // __linux__
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(error) << "3DConnexion device cannot be opened: " << data.path <<
|
||||
" You may need to update /etc/udev/rules.d";
|
||||
#if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
||||
else
|
||||
std::cout << "-> NOT PASSED" << std::endl;
|
||||
#endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
||||
}
|
||||
}
|
||||
|
||||
if (found)
|
||||
|
Loading…
Reference in New Issue
Block a user