From: Andy Stewart <lazycat.manatee@gmail.com>

Christian Maeder <Christian.Maeder@dfki.de> writes:

> Hi,
>
> I've installed the gtk2 quartz variant from Macports.
> This required to uninstall the x11 variants of gtk2, pango and cairo first.
>
>  sudo port install gtk2 +no_x11 +quartz +universal
>
> Installation of gtk-0.12.0 succeeded, but when I was linking my binary I
> got:
>
> Undefined symbols:
>   "_gdk_x11_drawable_get_xid", referenced from:
>       _s24wg_info in libHSgtk-0.12.0.a(Structs.o)
> ld: symbol(s) not found
>
> I therefore removed "drawableGetID" from the files
>   Graphics/UI/Gtk/General/Structs.hsc
>   Graphics/UI/Gtk/Gdk/Drawable.chs
>
> and everything worked for me.
>
> Shouldn't this be added as flag or detected by configure?
Yes, i think it's missing some flag. 

> How important is drawableGetID?

drawableGetID is new function to get ID of DrawWindow, then can use this
ID *embedded* some X11 program (such as mplayer, vi) in other GTK+
application.

Thanks for reminding me of this; I had this problem as well, worked around it in the same manner, and haven't had any problems.  I never use drawableGetID though, and I mostly run my own gtk2hs applications.

This is a problem for me as I use the gtk-osx native version rather than macports, so I need to patch the gtk2hs source in order to build it.

Apparently I filed a bug report, http://hackage.haskell.org/trac/gtk2hs/ticket/1200

The real fix would be to find the proper functions in the Quartz API and use those, but I'd be happy with anything that would just allow gtk2hs to build on OS X/Quartz.

John