···226226 d->base = *tracking_override_target;
227227228228 // but take orientation and position tracking capabilities from tracker
229229- d->base.orientation_tracking_supported = tracking_override_target->orientation_tracking_supported;
230230- d->base.position_tracking_supported = tracking_override_target->position_tracking_supported;
229229+ d->base.orientation_tracking_supported = tracking_override_tracker->orientation_tracking_supported;
230230+ d->base.position_tracking_supported = tracking_override_tracker->position_tracking_supported;
231231232232 // because we use the tracking data of the tracker, we use its tracking origin instead
233233 d->base.tracking_origin = tracking_override_tracker->tracking_origin;
+6-2
src/xrt/drivers/qwerty/qwerty_sdl.c
···2424 if (xdevs[i] == NULL) {
2525 continue;
2626 }
2727- if (strcmp(xdevs[i]->str, QWERTY_HMD_STR) == 0 || strcmp(xdevs[i]->str, QWERTY_LEFT_STR) == 0 ||
2828- strcmp(xdevs[i]->str, QWERTY_RIGHT_STR) == 0) {
2727+ // We check against tracker name instead of device name because the tracking overrides
2828+ // cause the multi device to have the same names even though they are not qwerty devices.
2929+ const char *tracker_name = xdevs[i]->tracking_origin->name;
3030+ if (strcmp(tracker_name, QWERTY_HMD_TRACKER_STR) == 0 ||
3131+ strcmp(tracker_name, QWERTY_LEFT_TRACKER_STR) == 0 ||
3232+ strcmp(tracker_name, QWERTY_RIGHT_TRACKER_STR) == 0) {
2933 xdev = xdevs[i];
3034 break;
3135 }