Browse Source

libobs: Use IOKit error code when polling hotkeys (OSX)

In case a system authentication prompt is open the actual error code
(via err_get_code) is kIOReturnExclusiveAccess on OSX 10.9; I'm not
100% sure if this makes the "if (!value)" part of the code obsolete,
but that code path shouldn't be triggered under most circumstances
anyway

Fixes https://obsproject.com/mantis/view.php?id=346
Palana 10 years ago
parent
commit
74e4c33756
1 changed files with 6 additions and 1 deletions
  1. 6 1
      libobs/obs-cocoa.c

+ 6 - 1
libobs/obs-cocoa.c

@@ -1319,7 +1319,12 @@ bool obs_hotkeys_platform_is_pressed(obs_hotkeys_platform_t *plat,
 		IOHIDElementRef element = plat->keys[key].array[i];
 		IOHIDValueRef value     = 0;
 		IOHIDDeviceRef device   = IOHIDElementGetDevice(element);
-		IOHIDDeviceGetValue(device, element, &value);
+		
+		if (IOHIDDeviceGetValue(device, element, &value) !=
+				kIOReturnSuccess) {
+			i += 1;
+			continue;
+		}
 
 		if (!value) {
 			CFRelease(element);