work around no convertRectToScreen on < 10.7 Of note, it looks a lot like the new convertPointToScreen is just the old convertBaseToScreen in new clothes... what goes around comes around, I guess --- src/gui/menu_osx.mm.orig 2020-09-02 12:14:28.000000000 -0700 +++ src/gui/menu_osx.mm 2020-09-02 12:16:38.000000000 -0700 @@ -511,7 +511,16 @@ // NTS: This did not appear until Mojave, and some followers on Github prefer to compile for somewhat older versions of OS X // NSPoint pt = [wnd convertPointToScreen:NSMakePoint(rct.size.width / 2, rct.size.height / 2)]; // NTS: convertRectToScreen however is documented to exist since 10.7, unless Apple got that wrong too... - NSPoint pt = [wnd convertRectToScreen:NSMakeRect(rct.size.width / 2, rct.size.height / 2, 0, 0)].origin; /* x,y,w,h */ + NSPoint pt = {0,0}; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 + if ([wnd respondsToSelector:@selector(convertRectToScreen:)]) { + pt = [wnd convertRectToScreen:NSMakeRect(rct.size.width / 2, rct.size.height / 2, 0, 0)].origin; /* x,y,w,h */ + } else { + pt = [wnd convertBaseToScreen:NSMakeRect(rct.size.width / 2, rct.size.height / 2, 0, 0).origin]; /* x,y,w,h */ + } +#else + pt = [wnd convertBaseToScreen:NSMakeRect(rct.size.width / 2, rct.size.height / 2, 0, 0).origin]; /* x,y,w,h */ +#endif { /* Eugh this ugliness wouldn't be necessary if we didn't have to fudge relative to primary display. */