My biggest concern here is that the functionality of ROOT’s display changes depending on the back-end you are using. Those programming for X11 will have not working code on Cocoa and those developing on Cocoa will have extraneous calls in X11 (that some X11 may try to remove in further development). The solution seems to me to launch another thread to contain the Cocoa process so it acts more like the X11 server.