Opened 12 months ago

Last modified 2 weeks ago

#59005 assigned defect

libsdl2 @2.0.10: trackpad working erratically as pointing device on 10.6.8

Reported by: kencu (Ken) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: libsdl2

Description (last modified by mf2k (Frank Schima))

This may well turn out to be an upstream issue in the end, but I'm noticing it on our libsdl2 on 10.6.8 and I'm not sure how widespread it is just now.

After upgrading to libsdl2 @2.0.10, various ports that use libsdl2 have significant artifacts using the trackpad on my laptop (running 10.6.8/libc++).

The mousein / mouseout / mousedown events from a user perspective are quite unstable, almost unusable. Flashing rapidly, enabling on and off, while in the button zone, sometimes responding to clicks if the button happens to be active at the moment of the click, but usually not.

Interestingly, plugging in a USB mouse works perfectly normally again.

Also, reverting to libsdl2 @2.0.9 fixes the issues with the trackpad.

I see <https://discourse.libsdl.org/t/sdl-2-0-10-released/26429> some work was done specifically on the trackpad and controller code in this update.

At this moment, I'm not sure if this is an issue with libsdl2 only on 10.6.8, or if it is the specific hardware on this laptop, or if it is general to @2.10.0 (it would seem hard to imagine this slipping past beta testers).

More investigation to follow. For now, workarounds are:

  1. use a mouse
  2. downgrade to libsdl2 @2.0.9

I'll assign this to Josh as it's his port, but we may find this issue belongs upstream rather than at this level if it's widespread.

Change History (8)

comment:2 Changed 12 months ago by mf2k (Frank Schima)

Description: modified (diff)

comment:3 Changed 12 months ago by kencu (Ken)

On the same hardware, running 10.13 and libsdl2 @2.10.0, the trackpad works normally. So it's looking to be an OS-version-specific issue.

comment:4 Changed 12 months ago by kencu (Ken)

This might be useful. One app on 10.6.8 w libsdl2 @2.10.0 crashed in the trackpad code:

Process:         hwengine [25428]
Path:            /Applications/MacPorts/Hedgewars.app/Contents/MacOS/hwengine
Identifier:      org.hedgewars.desktop
Version:         0.9.23 (12836)
Code Type:       X86-64 (Native)
Parent Process:  hedgewars [25424]

Date/Time:       2019-09-11 20:28:35.998 -0700
OS Version:      Mac OS X 10.6.8 (10K549)
Report Version:  6

Interval Since Last Report:          19592426 sec
Crashes Since Last Report:           1165
Per-App Interval Since Last Report:  332 sec
Per-App Crashes Since Last Report:   1
Anonymous UUID:                      A3B3F8DB-9F61-4B79-884D-3BB3BE6151F5

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
abort() called
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid message sent to event "NSEvent: type=BeginGesture loc=(960,576) time=35044.3 flags=0x100 win=0x100611130 winNum=1374 ctxt=0x0"'
*** Call stack at first throw:
(
	0   CoreFoundation                      0x00000001d8319784 __exceptionPreprocess + 180
	1   libobjc.A.dylib                     0x00007fff8a06cf03 objc_exception_throw + 45
	2   CoreFoundation                      0x00000001d83195a7 +[NSException raise:format:arguments:] + 103
	3   Foundation                          0x00000001db43897a -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 198
	4   AppKit                              0x00000001dbb6626e -[NSEvent subtype] + 212
	5   libSDL2-2.0.0.dylib                 0x00000001d8056a01 -[Cocoa_WindowListener handleTouches:withEvent:] + 82
	6   AppKit                              0x00000001dbb63206 forwardMethod + 104
	7   AppKit                              0x00000001dc10846a -[NSWindow _handleTouchEvent:] + 339
	8   AppKit                              0x00000001dbc310c7 -[NSWindow sendEvent:] + 8769
	9   libSDL2-2.0.0.dylib                 0x00000001d8054699 -[SDLWindow sendEvent:] + 49
	10  AppKit                              0x00000001dbd910f7 -[NSApplication _handleGestureEvent:] + 235
	11  AppKit                              0x00000001dbb65f14 -[NSApplication sendEvent:] + 5769
	12  libSDL2-2.0.0.dylib                 0x00000001d804f81a -[SDLApplication sendEvent:] + 67
	13  libSDL2-2.0.0.dylib                 0x00000001d80505b8 Cocoa_PumpEvents + 272
	14  libSDL2-2.0.0.dylib                 0x00000001d7fc9c36 SDL_PumpEvents_REAL + 23
	15  hwengine                            0x00000001d0e1dcfe MainLoop + 110
	16  hwengine                            0x00000001d0e1eeb9 GameRoutine + 2697
	17  hwengine                            0x00000001d0e1f555 main + 117
	18  hwengine                            0x00000001d0d66974 start + 52

comment:6 Changed 12 months ago by kencu (Ken)

Summary: libsdl2 @2.0.10: trackpad working erratically as pointing devicelibsdl2 @2.0.10: trackpad working erratically as pointing device on 10.6.8

comment:7 Changed 11 months ago by kencu (Ken)

This is not a macports issue, it's an upstream issue. However, as it's Josh's ticket, I don't feel comfortable closing it and will leave it to Josh to hit the "wontfix" button.

comment:8 Changed 2 weeks ago by kencu (Ken)

This is happening in other sdl2 applications now as well, triggered by two-finger drags on the trackpad, for example, on 10.6.8 at least.

Note: See TracTickets for help on using tickets.