- Joystick *js = [controller findJoystickByRef:device];
- if (((ApplicationController *)[NSApplication sharedApplication].delegate).active) {
- JSAction *mainAction = [js actionForEvent:value];
- [mainAction notifyEvent:value];
- NSArray *children = mainAction.children ? mainAction.children : mainAction ? @[mainAction] : @[];
- for (JSAction *subaction in children) {
- Target *target = [controller.currentConfig getTargetForAction:subaction];
- target.magnitude = mainAction.magnitude;
- target.running = subaction.active;
- if (target.running && target.isContinuous)
- [controller addRunningTarget:target];
- }
- } else if ([NSApplication sharedApplication].isActive
- && [NSApplication sharedApplication].mainWindow.isVisible) {
- // joysticks not active, use it to select stuff
- JSAction *handler = [js handlerForEvent:value];
- if (!handler)
- return;
-
- [controller expandRecursive:handler];
- controller->programmaticallySelecting = YES;
- [controller->outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:[controller->outlineView rowForItem:handler]] byExtendingSelection: NO];
+ if (controller.sendingRealEvents) {
+ [controller runTargetForDevice:device value:value];
+ } else if ([NSApplication sharedApplication].mainWindow.isVisible) {
+ [controller showTargetForDevice:device value:value];