Executing gestures on XQuartz based windows crashes BetterTouchTool

Note: Before bug reporting, please make sure you have tried the latest (alpha) version of BetterTouchTool and that you have already tried to restart your system :-). If you encounter a crash, please attach a crash log from the macOS Console.app from the "User Diagnostic Reports" section.

Describe the bug
Executing a gesture to Zoom an XQuartz based window crashes BetterTouchTool.

Steps to reproduce:

  1. Bring up BetterTouchTool config window.
  2. Create gesture (I did custom 4,3,2,1 four fingered gesture, ie, tapping right-hand fingers from pinky to index.)
  3. Assign it the action 'Zoom Window.'
  4. With the BetterTouchTool config window still visible on the desktop, execute the action while over an
    XQuartz based window.
  5. BetterTouchTool config window disappears, and shortly thereafter a crash log window is displayed.

Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):
MacBook Pro Trackpad

Screenshots
If applicable, add screenshots to help explain your problem. (You can just paste or drag them here)

Device information:

  • Type of Mac: MacBook Pro 15", 2018
  • macOS version: 10.14.6 (18G2022)
  • BetterTouchTool version: 3.346 (1554)

Additional information (e.g. StackTraces, related issues, screenshots, workarounds, etc.):

Partial information from crash window (new user, won't let me include entire text):

Process: BetterTouchTool [95065]
Path: /Applications/BetterTouchTool.app/Contents/MacOS/BetterTouchTool
Identifier: com.hegenberg.BetterTouchTool
Version: 3.346 (1554)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: BetterTouchTool [95065]
User ID: 1786626585

Date/Time: 2020-03-18 17:27:59.403 -0700
OS Version: Mac OS X 10.14.6 (18G2022)
Report Version: 12
Bridge OS Version: 4.2 (17P2551)
Anonymous UUID: 4A89C90A-CC6E-DF8B-2D89-FF02B759C29F

Sleep/Wake UUID: 99D32E2B-BE18-4716-94BB-9458BAFCEA8B

Time Awake Since Boot: 130000 seconds
Time Since Wake: 100000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00006b9987842c58
Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [95065]

VM Regions Near 0x6b9987842c58:
MALLOC_NANO (reserved) 0000600008000000-0000600020000000 [384.0M] rw-/rwx SM=NUL reserved VM address space (unallocated)
-->
STACK GUARD 0000700007196000-0000700007197000 [ 4K] ---/rwx SM=NUL stack guard for thread 6

Application Specific Information:
objc_msgSend() selector name: _cfTypeID

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00007fff6ead369d objc_msgSend + 29
1 com.apple.HIServices 0x00007fff42b275a7 _AXUIElementValidate + 57
2 com.apple.HIServices 0x00007fff42b38b57 AXUIElementCopyAttributeNames + 129
3 com.hegenberg.BetterTouchTool 0x000000010df3b637 +[SBApiAccess valueOfExistingAttribute:ofUIElement:] + 609
4 com.hegenberg.BetterTouchTool 0x000000010df21082 -[SBMacWinHandler zoomWindowUnderCursor] + 237
5 com.hegenberg.BetterTouchTool 0x000000010df4ac22 -[BTTActions zoomWindowUnderCursor] + 92
6 com.hegenberg.BetterTouchTool 0x000000010e084915 __73-[BTTShortcutter performActionReal:withInfo:remainingChildren:withReply:]_block_invoke + 13995
7 com.hegenberg.BetterTouchTool 0x000000010de65b31 +[BetterTouchToolAppDelegate runOnMainQueueWithoutDeadlocking:] + 48
8 com.hegenberg.BetterTouchTool 0x000000010e0811dc -[BTTShortcutter performActionReal:withInfo:remainingChildren:withReply:] + 257
9 com.hegenberg.BetterTouchTool 0x000000010e0810ab -[BTTShortcutter performAction:withInfo:remainingChildren:withReply:] + 122
10 com.hegenberg.BetterTouchTool 0x000000010e079812 -[BTTShortcutter performActionForGestureChildren:withReply:] + 4944
11 com.hegenberg.BetterTouchTool 0x000000010e078369 -[BTTShortcutter performActionForGesture:withReply:] + 1680
12 com.hegenberg.BetterTouchTool 0x000000010e07d403 -[BTTShortcutter performShortcutOrActionForGestureIDReal:checkOnly:additionalString:additionalNumber:bezierPathName:fetchType:] + 2163
13 com.hegenberg.BetterTouchTool 0x000000010e07cb63 -[BTTShortcutter performShortcutOrActionForGestureIDReal:checkOnly:additionalString:additionalNumber:bezierPathName:] + 82
14 com.hegenberg.BetterTouchTool 0x000000010e07a249 -[BTTShortcutter performShortcutOrActionForGestureIDMT:checkOnly:additionalString:additionalNumber:bezierPathName:] + 116
15 com.hegenberg.BetterTouchTool 0x000000010e079dff __113-[BTTShortcutter performShortcutOrActionForGestureID:checkOnly:additionalString:additionalNumber:bezierPathName:]_block_invoke + 50
16 libdispatch.dylib 0x00007fff7026363d _dispatch_client_callout + 8
17 libdispatch.dylib 0x00007fff7026f1ea _dispatch_async_and_wait_invoke + 87
18 libdispatch.dylib 0x00007fff7026363d _dispatch_client_callout + 8
19 libdispatch.dylib 0x00007fff7026e68d _dispatch_main_queue_callback_4CF + 1135
20 com.apple.CoreFoundation 0x00007fff4434aa87 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9
21 com.apple.CoreFoundation 0x00007fff4434a1b1 __CFRunLoopRun + 2289
22 com.apple.CoreFoundation 0x00007fff4434966e CFRunLoopRunSpecific + 455
23 com.apple.HIToolbox 0x00007fff435a81ab RunCurrentEventLoopInMode + 292
24 com.apple.HIToolbox 0x00007fff435a7ee5 ReceiveNextEventCommon + 603
25 com.apple.HIToolbox 0x00007fff435a7c76 _BlockUntilNextEventMatchingListInModeWithFilter + 64
26 com.apple.AppKit 0x00007fff4193f77d _DPSNextEvent + 1135
27 com.apple.AppKit 0x00007fff4193e46b -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1361
28 com.apple.AppKit 0x00007fff41938588 -[NSApplication run] + 699
29 com.apple.AppKit 0x00007fff41927ac8 NSApplicationMain + 777
30 libdyld.dylib 0x00007fff702b03d5 start + 1

I have almost exactly the same issue ... for some reason BTT and XQuartz applications seem entirely incompatible :frowning: