diff --git a/src/video/cocoa/SDL_cocoapen.m b/src/video/cocoa/SDL_cocoapen.m index 6c30bfb157..e8a15dac78 100644 --- a/src/video/cocoa/SDL_cocoapen.m +++ b/src/video/cocoa/SDL_cocoapen.m @@ -84,7 +84,12 @@ static void Cocoa_HandlePenProximityEvent(SDL_CocoaWindowData *_data, NSEvent *e return; // we ignore other things, which hopefully is right. } - Cocoa_PenHandle *handle = (Cocoa_PenHandle *) SDL_calloc(1, sizeof (*handle)); + Cocoa_PenHandle *handle = Cocoa_FindPenByDeviceID(devid, toolid); + if (handle) { + return; // already have this one. + } + + handle = (Cocoa_PenHandle *) SDL_calloc(1, sizeof (*handle)); if (!handle) { return; // oh well. }